diff --git a/.gitignore b/.gitignore index 56149a0d5d..7f90378aec 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 37967291f6..0000000000 --- a/README +++ /dev/null @@ -1 +0,0 @@ -erpnext diff --git a/README.md b/README.md new file mode 100644 index 0000000000..4ed8f0d936 --- /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 3d4d1c1d8c..0000000000 --- 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 Account - "+cstr(acct)+" under Cost Center - "+ cstr(cost_center) + ""+cstr((action == 'Stop') and ", you can not have this transaction." or ".")) - if action == 'Stop': raise Exception - - def check_budget(self,le_list,cancel): - # get value from record - acct, cost_center, debit, credit, post_dt, cfy, company = le_list - - # get allocated budget - bgt = sql("select t1.budget_allocated, t1.actual, t2.distribution_id from `tabBudget Detail` t1, `tabCost Center` t2 where t1.account='%s' and t1.parent=t2.name and t2.name = '%s' and t1.fiscal_year='%s'" % (acct,cost_center,cfy), as_dict =1) - curr_amt = ((cancel and -1 or 1) * flt(debit)) + ((cancel and 1 or -1) * flt(credit)) - - if bgt and bgt[0]['budget_allocated']: - # check budget flag in Company - bgt_flag = sql("select yearly_bgt_flag, monthly_bgt_flag from `tabCompany` where name = '%s'" % company, as_dict =1) - - if bgt_flag and bgt_flag[0]['monthly_bgt_flag'] in ['Stop', 'Warn']: - # get start date and last date - st_date = get_value('Fiscal Year', cfy, 'year_start_date').strftime('%Y-%m-%d') - lt_date = sql("select LAST_DAY('%s')" % post_dt) - - # get Actual - actual = get_obj('GL Control').get_period_difference(acct + '~~~' + cstr(st_date) + '~~~' + cstr(lt_date[0][0]), cost_center) - - # Get Monthly budget - budget = self.get_monthly_budget(bgt and bgt[0]['distribution_id'] or '' , cfy, st_date, post_dt, bgt[0]['budget_allocated']) - - # validate monthly budget - self.validate_budget(acct, cost_center, flt(actual) + flt(curr_amt), budget, 'monthly_bgt_flag') - - # update actual against budget allocated in cost center - sql("update `tabBudget Detail` set actual = ifnull(actual,0) + %s where account = '%s' and fiscal_year = '%s' and parent = '%s'" % (curr_amt,cstr(acct),cstr(cfy),cstr(cost_center))) \ No newline at end of file diff --git a/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js deleted file mode 100644 index 24dc50f2fb..0000000000 --- a/accounts/doctype/cost_center/cost_center.js +++ /dev/null @@ -1,39 +0,0 @@ - - -//Account filtering for cost center -cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) { - var mydoc = locals[this.doctype][this.docname]; - return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'; - } - -cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){ - return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50'; -} - -//parent cost center -cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){ - if(!doc.company_name){ - alert('Please enter company name first'); - } -} - -//company abbr -cur_frm.cscript.company_name = function(doc,cdt,cdn){ - get_server_fields('get_abbr','','',doc,cdt,cdn,1); -} - -//onload if cost center is group -cur_frm.cscript.onload = function(doc, cdt, cdn) { - - if(!doc.__islocal && doc.docstatus == 0){ - get_field(doc.doctype,'group_or_ledger',doc.name).permlevel = 1; - refresh_field('group_or_ledger'); - get_field(doc.doctype,'company_name',doc.name).permlevel = 1; - refresh_field('company_name'); - } - -} - -cur_frm.cscript.refresh = function(doc, cdt, cdn) { - -} diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py deleted file mode 100644 index 521712b1f9..0000000000 --- a/accounts/doctype/cost_center/cost_center.py +++ /dev/null @@ -1,68 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model import db_exists -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes.model.doclist import getlist, copy_doclist -from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax -from webnotes import session, form, is_testing, msgprint, errprint - -set = webnotes.conn.set -sql = webnotes.conn.sql -get_value = webnotes.conn.get_value -in_transaction = webnotes.conn.in_transaction -convert_to_lists = webnotes.conn.convert_to_lists - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d,dl - self.nsm_parent_field = 'parent_cost_center' - - def autoname(self): - #company_abbr = sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0] - self.doc.name = self.doc.cost_center_name + ' - ' + self.doc.company_abbr - - def get_abbr(self): - abbr = sql("select abbr from tabCompany where company_name='%s'"%(self.doc.company_name))[0][0] or '' - ret = { - 'company_abbr' : abbr - } - return ret - - def validate(self): - # Cost Center name must be unique - # --------------------------- - if (self.doc.__islocal or (not self.doc.name)) and sql("select name from `tabCost Center` where cost_center_name = %s and company_name=%s", (self.doc.cost_center_name, self.doc.company_name)): - msgprint("Cost Center Name already exists, please rename") - raise Exception - - check_acc_list = [] - for d in getlist(self.doclist, 'budget_details'): - if [d.account, d.fiscal_year] in check_acc_list: - msgprint("Account " + cstr(d.account) + "has been entered more than once for fiscal year " + cstr(d.fiscal_year)) - raise Exception - if [d.account, d.fiscal_year] not in check_acc_list: check_acc_list.append([d.account, d.fiscal_year]) - - def on_update(self): - # update Node Set Model - import webnotes - import webnotes.utils.nestedset - # update Node Set Model - webnotes.utils.nestedset.update_nsm(self) - - def check_if_child_exists(self): - return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name, debug=0) - - # On Trash - # -------- - def on_trash(self): - if self.check_if_child_exists(): - msgprint("Child exists for this cost center. You can not trash this account.", raise_exception=1) - - # rebuild tree - set(self.doc,'old_parent', '') - self.update_nsm_model() diff --git a/accounts/doctype/gl_control/gl_control.js b/accounts/doctype/gl_control/gl_control.js deleted file mode 100644 index 8f8d786424..0000000000 --- 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('
Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s)
' % (voucher_obj.doc.doctype, voucher_obj.doc.name, voucher_obj.doc.outstanding_amount, bal)) - msg.append('
Difference found in Outstanding Amount of %s : %s (Before : %s; After : %s)
' % (voucher_obj.doc.doctype, voucher_obj.doc.name, voucher_obj.doc.outstanding_amount, bal)) - - # set voucher balance - #sql("update `tab%s` set outstanding_amount=%s where name='%s'" % (voucher_obj.doc.doctype, bal, voucher_obj.doc.name)) - set(voucher_obj.doc, 'outstanding_amount', flt(bal)) - - # Send Mail - if msg: - email_msg = """ Dear Administrator, - -In Account := %s User := %s has Repaired Outstanding Amount For %s : %s and following was found:- - -%s - -""" % (get_value('Control Panel', None,'account_id'), session['user'], voucher_obj.doc.doctype, voucher_obj.doc.name, '\n'.join(msg)) - - sendmail(['jai@webnotestech.com'], subject='Repair Outstanding Amount', parts = [('text/plain', email_msg)]) - # Acknowledge User - msgprint(cstr(voucher_obj.doc.doctype) + " : " + cstr(voucher_obj.doc.name) + " has been checked" + cstr(msg and " and repaired successfully." or ". No changes Found.")) diff --git a/accounts/doctype/gl_entry/gl_entry.js b/accounts/doctype/gl_entry/gl_entry.js deleted file mode 100644 index 9f34ad8795..0000000000 --- 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 2bbc08cf58..0000000000 --- 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 e773a95fc8..0000000000 --- a/accounts/doctype/receivable_voucher/receivable_voucher.js +++ /dev/null @@ -1,419 +0,0 @@ -cur_frm.cscript.tname = "RV Detail"; -cur_frm.cscript.fname = "entries"; -cur_frm.cscript.other_fname = "other_charges"; -cur_frm.cscript.sales_team_fname = "sales_team"; - -// print heading -cur_frm.pformat.print_heading = 'Invoice'; - -$import(Sales Common) -$import(Other Charges) -$import(SMS Control) - -// On Load -// ------- -cur_frm.cscript.onload = function(doc,dt,dn) { - if(!doc.customer && doc.debit_to) get_field(dt, 'debit_to', dn).print_hide = 0; - if (doc.__islocal) { - if(!doc.voucher_date) set_multiple(dt,dn,{voucher_date:get_today()}); - if(!doc.due_date) set_multiple(dt,dn,{due_date:get_today()}); - if(!doc.posting_date) set_multiple(dt,dn,{posting_date:get_today()}); - - //for previously created sales invoice, set required field related to pos - if(doc.is_pos ==1) cur_frm.cscript.is_pos(doc, dt, dn); - - hide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); - } -} - -cur_frm.cscript.onload_post_render = function(doc, dt, dn) { - if(doc.customer && doc.__islocal) { - // called from mapper, update the account names for items and customer - $c_obj(make_doclist(doc.doctype,doc.name), - 'load_default_accounts','', - function(r,rt) { - refresh_field('entries'); - refresh_field('debit_to'); - } - ); - } - - if(!doc.customer && doc.__islocal) { - // new -- load default taxes - cur_frm.cscript.load_taxes(doc, cdt, cdn); - } -} - - -// Hide Fields -// ------------ -cur_frm.cscript.hide_fields = function(doc, cdt, cdn) { - if(cint(doc.is_pos) == 1) - hide_field(['project_name', 'due_date', 'posting_time', 'sales_order_main', 'delivery_note_main', 'Get Items']); - else - unhide_field(['project_name', 'due_date', 'posting_time', 'sales_order_main', 'delivery_note_main', 'Get Items']); -} - - -// Refresh -// ------- -cur_frm.cscript.refresh = function(doc, dt, dn) { - - // Show / Hide button - cur_frm.clear_custom_buttons(); - - if(doc.docstatus==1) { - cur_frm.add_custom_button('View Ledger', cur_frm.cscript['View Ledger Entry']); - cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']); - unhide_field('Repair Outstanding Amt'); - - if(doc.is_pos==1 && doc.update_stock!=1) - cur_frm.add_custom_button('Make Delivery', cur_frm.cscript['Make Delivery Note']); - - if(doc.outstanding_amount!=0) - cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript['Make Bank Voucher']); - } - else - hide_field('Repair Outstanding Amt'); - cur_frm.cscript.is_opening(doc, dt, dn); - cur_frm.cscript.hide_fields(doc, cdt, cdn); -} - -//fetch retail transaction related fields -//-------------------------------------------- -cur_frm.cscript.is_pos = function(doc,dt,dn){ - cur_frm.cscript.hide_fields(doc, cdt, cdn); - if(doc.is_pos == 1){ - if (!doc.company) { - msgprint("Please select company to proceed"); - doc.is_pos = 0; - refresh_field('is_pos'); - } - else { - var callback = function(r,rt){ - cur_frm.refresh(); - } - $c_obj(make_doclist(dt,dn),'set_pos_fields','',callback); - } - } -} - - -cur_frm.cscript.warehouse = function(doc, cdt , cdn) { - var d = locals[cdt][cdn]; - if (!d.item_code) {alert("please enter item code first"); return}; - if (d.warehouse) { - arg = "{'item_code':'" + d.item_code + "','warehouse':'" + d.warehouse +"'}"; - get_server_fields('get_actual_qty',arg,'entries',doc,cdt,cdn,1); - } -} - - - -//Customer -cur_frm.cscript.customer = function(doc,dt,dn) { - - var callback = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - get_server_fields('get_debit_to','','',doc, dt, dn, 0); - cur_frm.refresh(); - } - - if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback); - if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); -} - -cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { - if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); -} - -cur_frm.fields_dict.customer_address.on_new = function(dn) { - locals['Address'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Address'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict.contact_person.on_new = function(dn) { - locals['Contact'][dn].customer = locals[cur_frm.doctype][cur_frm.docname].customer; - locals['Contact'][dn].customer_name = locals[cur_frm.doctype][cur_frm.docname].customer_name; -} - -cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,address_line1,city FROM tabAddress WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - -cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) { - return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE customer = "'+ doc.customer +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50'; -} - - -// Set Due Date = posting date + credit days -cur_frm.cscript.debit_to = function(doc,dt,dn) { - - var callback2 = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - cur_frm.refresh(); - } - - var callback = function(r,rt) { - var doc = locals[cur_frm.doctype][cur_frm.docname]; - if(doc.customer) $c_obj(make_doclist(dt,dn), 'get_default_customer_address', '', callback2); - if(doc.customer) unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']); - cur_frm.refresh(); - } - - if(doc.debit_to && doc.posting_date){ - get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,callback); - } -} - - - -//refresh advance amount -//------------------------------------------------- - -cur_frm.cscript.paid_amount = function(doc,dt,dn){ - doc.outstanding_amount = flt(doc.grand_total) - flt(doc.paid_amount) - flt(doc.write_off_amount); - refresh_field('outstanding_amount'); -} - - -//---- get customer details ---------------------------- -cur_frm.cscript.project_name = function(doc,cdt,cdn){ - $c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){ - refresh_many(['customer', 'customer_name','customer_address', 'territory']); - }); -} - -//Set debit and credit to zero on adding new row -//---------------------------------------------- -cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){ - - cl = getchildren('RV Detail', doc.name, cur_frm.cscript.fname, doc.doctype); - acc = ''; - cc = ''; - - for(var i = 0; i 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 67281ee303..0000000000 --- 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 0000000000..0ea0779468 --- /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 0000000000..6b113057dc --- /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','
')} + except: + out = {'exc': e} + print + print str(out) diff --git a/config/conf.py b/config/conf.py new file mode 100644 index 0000000000..1cf35e21cb --- /dev/null +++ b/config/conf.py @@ -0,0 +1,7 @@ +index_path = '/' + +include_paths = [ + 'erpnext', + 'lib/py', + 'lib/py/legacy' +] \ No newline at end of file diff --git a/master.sql.gz b/data/master.sql.gz similarity index 100% rename from master.sql.gz rename to data/master.sql.gz diff --git a/accounts/__init__.py b/erpnext/.no_timestamps similarity index 100% rename from accounts/__init__.py rename to erpnext/.no_timestamps diff --git a/accounts/DocType Label/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt similarity index 100% rename from accounts/DocType Label/Payable Voucher/Payable Voucher.txt rename to erpnext/accounts/DocType Label/Payable Voucher/Payable Voucher.txt diff --git a/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt similarity index 100% rename from accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt rename to erpnext/accounts/DocType Label/Receivable Voucher/Receivable Voucher.txt diff --git a/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt similarity index 71% rename from accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt rename to erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt index 981e64aaeb..9ed756f023 100644 --- a/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt +++ b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:34', 'docstatus': 0, - 'modified': '2011-08-09 11:14:09', + 'modified': '2011-09-15 15:04:42', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -22,8 +22,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', - 'match_id': 1, 'name': '__common__', 'parent': 'Delivery Note-Receivable Voucher', 'parentfield': 'field_mapper_details', @@ -32,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Delivery Note', 'module': 'Accounts', 'name': '__common__', @@ -42,14 +40,16 @@ # DocType Mapper, Delivery Note-Receivable Voucher { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Delivery Note-Receivable Voucher' }, # Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate)', + 'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate) or obj.qty', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'qty' }, @@ -57,6 +57,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'delivery_note' }, @@ -64,6 +66,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'dn_detail' }, @@ -71,6 +75,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'prevdoc_docname', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'sales_order' }, @@ -78,6 +84,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'prevdoc_detail_docname', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'so_detail' }, @@ -85,6 +93,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: flt(obj.amount) - flt(obj.billed_amt)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'amount' }, @@ -92,9 +102,38 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'export_amount' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'incentives', + 'map': 'No', + 'match_id': 3, + 'to_field': 'incentives' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'serial_no', + 'map': 'Yes', + 'match_id': 1, + 'to_field': 'serial_no' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', @@ -115,6 +154,17 @@ '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' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', 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 0854802f0d..e88f45250f 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 78% 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 aa4e7870d1..1949110274 100644 --- a/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt +++ b/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-05-13 11:26:20', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-15 15:04:43', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -22,8 +22,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', - 'match_id': 1, 'name': '__common__', 'parent': 'Purchase Order-Payable Voucher', 'parentfield': 'field_mapper_details', @@ -32,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Purchase Order', 'module': 'Accounts', 'name': '__common__', @@ -42,7 +40,7 @@ # DocType Mapper, Purchase Order-Payable Voucher { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Purchase Order-Payable Voucher' }, @@ -50,6 +48,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'qty' }, @@ -57,6 +57,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'purchase_rate', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'rate' }, @@ -64,6 +66,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'amount' }, @@ -71,6 +75,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'import_amount' }, @@ -78,6 +84,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'purchase_order' }, @@ -85,9 +93,20 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'po_detail' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', @@ -108,6 +127,17 @@ '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' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt similarity index 84% rename from accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt rename to erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt index d363acbcd5..94408e7a2b 100644 --- a/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt +++ b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-05-13 12:18:34', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-15 15:04:44', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -22,8 +22,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', - 'match_id': 1, 'name': '__common__', 'parent': 'Purchase Receipt-Payable Voucher', 'parentfield': 'field_mapper_details', @@ -32,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Purchase Receipt', 'module': 'Accounts', 'name': '__common__', @@ -42,7 +40,7 @@ # DocType Mapper, Purchase Receipt-Payable Voucher { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Purchase Receipt-Payable Voucher' }, @@ -50,6 +48,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: flt(obj.qty) - flt(obj.billed_qty)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'qty' }, @@ -57,6 +57,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'purchase_rate', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'rate' }, @@ -64,6 +66,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.purchase_rate)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'amount' }, @@ -71,6 +75,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.billed_qty)) * flt(obj.import_rate)', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'import_amount' }, @@ -78,6 +84,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'purchase_receipt' }, @@ -85,6 +93,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'prevdoc_docname', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'purchase_order' }, @@ -92,6 +102,8 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'pr_detail' }, @@ -99,9 +111,20 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'prevdoc_detail_docname', + 'map': 'Yes', + 'match_id': 1, 'to_field': 'po_detail' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt similarity index 76% rename from accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt rename to erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt index f1f77101b3..630fb1502a 100644 --- a/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt +++ b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:36', 'docstatus': 0, - 'modified': '2011-08-08 16:56:40', + 'modified': '2011-09-15 15:04:45', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -22,7 +22,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', 'name': '__common__', 'parent': 'Sales Order-Receivable Voucher', 'parentfield': 'field_mapper_details', @@ -31,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Sales Order', 'module': 'Accounts', 'name': '__common__', @@ -41,7 +40,7 @@ # DocType Mapper, Sales Order-Receivable Voucher { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Sales Order-Receivable Voucher' }, @@ -50,6 +49,7 @@ 'checking_operator': '=', 'doctype': 'Field Mapper Detail', 'from_field': 'customer', + 'map': 'Yes', 'match_id': 0, 'to_field': 'customer' }, @@ -57,7 +57,8 @@ # Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate)', + 'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty', + 'map': 'Yes', 'match_id': 1, 'to_field': 'qty' }, @@ -66,6 +67,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', 'match_id': 1, 'to_field': 'sales_order' }, @@ -74,6 +76,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', 'match_id': 1, 'to_field': 'so_detail' }, @@ -82,6 +85,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval:flt(obj.amount) - flt(obj.billed_amt)', + 'map': 'Yes', 'match_id': 1, 'to_field': 'amount' }, @@ -90,6 +94,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)', + 'map': 'Yes', 'match_id': 1, 'to_field': 'export_amount' }, @@ -99,6 +104,7 @@ 'checking_operator': '=', 'doctype': 'Field Mapper Detail', 'from_field': 'project_name', + 'map': 'Yes', 'match_id': 0, 'to_field': 'project_name' }, @@ -107,10 +113,29 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'reserved_warehouse', + 'map': 'Yes', 'match_id': 1, 'to_field': 'warehouse' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'incentives', + 'map': 'No', + 'match_id': 3, + 'to_field': 'incentives' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', @@ -128,7 +153,18 @@ 'match_id': 1, 'to_field': 'entries', 'to_table': 'RV Detail', - 'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1' + 'validation_logic': 'docstatus = 1' + }, + + # Table Mapper Detail + { + 'doctype': 'Table Mapper Detail', + 'from_field': 'sales_order_detail', + 'from_table': 'Sales Order Detail', + 'match_id': 1, + 'to_field': 'entries', + 'to_table': 'RV Detail', + 'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1' }, # Table Mapper Detail diff --git a/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt b/erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt similarity index 100% rename from accounts/GL Mapper/Journal Voucher/Journal Voucher.txt rename to erpnext/accounts/GL Mapper/Journal Voucher/Journal Voucher.txt diff --git a/accounts/GL Mapper/POS with write off/POS with write off.txt b/erpnext/accounts/GL Mapper/POS with write off/POS with write off.txt similarity index 100% rename from accounts/GL Mapper/POS with write off/POS with write off.txt rename to erpnext/accounts/GL Mapper/POS with write off/POS with write off.txt diff --git a/accounts/GL Mapper/POS/POS.txt b/erpnext/accounts/GL Mapper/POS/POS.txt similarity index 100% rename from accounts/GL Mapper/POS/POS.txt rename to erpnext/accounts/GL Mapper/POS/POS.txt diff --git a/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt b/erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt similarity index 100% rename from accounts/GL Mapper/Payable Voucher/Payable Voucher.txt rename to erpnext/accounts/GL Mapper/Payable Voucher/Payable Voucher.txt diff --git a/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt b/erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt similarity index 100% rename from accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt rename to erpnext/accounts/GL Mapper/Receivable Voucher/Receivable Voucher.txt diff --git a/accounts/Module Def/Accounts/Accounts.txt b/erpnext/accounts/Module Def/Accounts/Accounts.txt similarity index 78% rename from accounts/Module Def/Accounts/Accounts.txt rename to erpnext/accounts/Module Def/Accounts/Accounts.txt index 512b460b82..0a6921a13c 100644 --- a/accounts/Module Def/Accounts/Accounts.txt +++ b/erpnext/accounts/Module Def/Accounts/Accounts.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2010-09-25 10:50:34', + 'creation': '2010-09-25 10:50:37', 'docstatus': 0, - 'modified': '2011-07-28 12:01:10', + 'modified': '2011-09-27 12:44:04', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -31,7 +31,7 @@ # These values are common for all Module Def { 'disabled': 'No', - 'doctype': 'Module Def', + 'doctype': u'Module Def', 'doctype_list': 'GL Mapper, Journal Voucher\nGL Mapper, Payable Voucher\nGL Mapper, Receivable Voucher\nDocType Label, Receivable Voucher\nDocType Label, Payable Voucher', 'file_list': 'finance.gif,FileData/00210', 'is_hidden': 'No', @@ -40,13 +40,13 @@ 'module_icon': 'Accounts.gif', 'module_label': 'Accounts', 'module_name': 'Accounts', - 'module_seq': 3, + 'module_seq': 5, 'name': '__common__' }, # Module Def, Accounts { - 'doctype': 'Module Def', + 'doctype': u'Module Def', 'name': 'Accounts' }, @@ -57,8 +57,7 @@ 'display_name': 'Chart of Accounts', 'doc_name': 'Accounts Browser', 'doc_type': 'Pages', - 'doctype': 'Module Def Item', - 'idx': 1 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -68,8 +67,7 @@ 'display_name': 'Chart of Cost Centers', 'doc_name': 'Accounts Browser', 'doc_type': 'Pages', - 'doctype': 'Module Def Item', - 'idx': 2 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -79,8 +77,7 @@ 'doc_name': 'Journal Voucher', 'doc_type': 'Forms', 'doctype': 'Module Def Item', - 'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit', - 'idx': 3 + 'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit' }, # Module Def Item @@ -90,8 +87,7 @@ 'doc_name': 'Receivable Voucher', 'doc_type': 'Forms', 'doctype': 'Module Def Item', - 'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount', - 'idx': 4 + 'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount' }, # Module Def Item @@ -101,8 +97,7 @@ 'doc_name': 'Payable Voucher', 'doc_type': 'Forms', 'doctype': 'Module Def Item', - 'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount', - 'idx': 5 + 'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount' }, # Module Def Item @@ -111,8 +106,7 @@ 'display_name': 'Lease Agreement', 'doc_name': 'Lease Agreement', 'doc_type': 'Forms', - 'doctype': 'Module Def Item', - 'idx': 6 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -122,8 +116,7 @@ 'doc_name': 'Financial Statements', 'doc_type': 'Pages', 'doctype': 'Module Def Item', - 'icon': 'table.gif', - 'idx': 7 + 'icon': 'table.gif' }, # Module Def Item @@ -132,8 +125,16 @@ 'display_name': 'Bank Reconciliation', 'doc_name': 'Bank Reconciliation', 'doc_type': 'Single DocType', - 'doctype': 'Module Def Item', - 'idx': 8 + 'doctype': 'Module Def Item' + }, + + # Module Def Item + { + 'description': 'Link your invoices and payment vouchers to clear/update outstanding amount', + 'display_name': 'Internal Reconciliation', + 'doc_name': 'Internal Reconciliation', + 'doc_type': 'Single DocType', + 'doctype': 'Module Def Item' }, # Module Def Item @@ -141,8 +142,7 @@ 'display_name': 'TDS Payment', 'doc_name': 'TDS Payment', 'doc_type': 'Setup Forms', - 'doctype': 'Module Def Item', - 'idx': 9 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -150,8 +150,7 @@ 'display_name': 'TDS Return Acknowledgement', 'doc_name': 'TDS Return Acknowledgement', 'doc_type': 'Setup Forms', - 'doctype': 'Module Def Item', - 'idx': 10 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -159,8 +158,7 @@ 'display_name': 'Form 16A', 'doc_name': 'Form 16A', 'doc_type': 'Setup Forms', - 'doctype': 'Module Def Item', - 'idx': 11 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -169,8 +167,7 @@ 'display_name': 'Period Closing Voucher', 'doc_name': 'Period Closing Voucher', 'doc_type': 'Setup Forms', - 'doctype': 'Module Def Item', - 'idx': 12 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -179,8 +176,7 @@ 'display_name': 'Ledger Balance Export', 'doc_name': 'Ledger Balance Export', 'doc_type': 'Single DocType', - 'doctype': 'Module Def Item', - 'idx': 13 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -188,8 +184,7 @@ 'display_name': 'General Ledger', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 14 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -197,8 +192,7 @@ 'display_name': 'Accounts Receivable', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 15 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -206,8 +200,7 @@ 'display_name': 'Accounts Payable', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 16 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -215,8 +208,7 @@ 'display_name': 'Bank Reconciliation Statement', 'doc_name': 'Journal Voucher Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 17 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -224,8 +216,7 @@ 'display_name': 'Trial Balance', 'doc_name': 'Account', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 18 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -233,8 +224,7 @@ 'display_name': 'Sales Register', 'doc_name': 'Receivable Voucher', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 19 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -242,8 +232,7 @@ 'display_name': 'Purchase Register', 'doc_name': 'Payable Voucher', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 20 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -251,8 +240,7 @@ 'display_name': 'Bank Clearance report', 'doc_name': 'Journal Voucher Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 21 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -260,8 +248,7 @@ 'display_name': 'Monthly Ledger Summary Report', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 22 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -269,8 +256,7 @@ 'display_name': 'Collection Report', 'doc_name': 'Journal Voucher Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 23 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -278,8 +264,7 @@ 'display_name': 'Total amout collection for a period - Customerwise', 'doc_name': 'Account', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 24 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -287,8 +272,7 @@ 'display_name': 'Payment Report', 'doc_name': 'Journal Voucher Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 25 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -296,8 +280,7 @@ 'display_name': 'Itemwise Sales Register', 'doc_name': 'RV Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 26 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -305,8 +288,7 @@ 'display_name': 'Itemwise Purchase Register', 'doc_name': 'PV Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 27 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -314,8 +296,7 @@ 'display_name': 'Cost Center wise Expense', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 28 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -323,8 +304,7 @@ 'display_name': 'TDS Return', 'doc_name': 'TDS Payment Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 29 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -332,8 +312,7 @@ 'display_name': 'Budget Variance Report', 'doc_name': 'Budget Detail', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 30 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -341,8 +320,7 @@ 'display_name': 'Payment Receipt Report', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 31 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -351,8 +329,7 @@ 'display_name': 'Business Associate Commission Report', 'doc_name': 'Receivable Voucher', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 32 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -360,8 +337,7 @@ 'display_name': 'Lease Agreement List', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 33 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -369,8 +345,7 @@ 'display_name': 'Lease Monthly Future Installment Inflows', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 34 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -378,8 +353,7 @@ 'display_name': 'Lease Overdue Age Wise', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 35 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -387,8 +361,7 @@ 'display_name': 'Lease Overdue List', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 36 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -396,17 +369,7 @@ 'display_name': 'Lease Receipts Client Wise', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 37 - }, - - # Module Def Item - { - 'display_name': 'Lease Receipt Summary Month Wise', - 'doc_name': 'GL Entry', - 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 38 + 'doctype': 'Module Def Item' }, # Module Def Item @@ -414,28 +377,26 @@ 'display_name': 'Lease Yearly Future Installment Inflows', 'doc_name': 'GL Entry', 'doc_type': 'Reports', - 'doctype': 'Module Def Item', - 'idx': 39 + 'doctype': 'Module Def Item' + }, + + # Module Def Item + { + 'display_name': 'Voucher wise tax details', + 'doc_name': 'RV Tax Detail', + 'doc_type': 'Reports', + 'doctype': 'Module Def Item' }, # Module Def Role { 'doctype': 'Module Def Role', - 'idx': 1, 'role': 'Accounts Manager' }, # Module Def Role { 'doctype': 'Module Def Role', - 'idx': 2, 'role': 'Accounts User' - }, - - # Module Def Role - { - 'doctype': 'Module Def Role', - 'idx': 3, - 'role': 'Administrator' } ] \ No newline at end of file diff --git a/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt b/erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt similarity index 100% rename from accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt rename to erpnext/accounts/Print Format/Cheque Printing Format/Cheque Printing Format.txt diff --git a/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt b/erpnext/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt similarity index 100% rename from accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt rename to erpnext/accounts/Print Format/Form 16A Print Format/Form 16A Print Format.txt diff --git a/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt b/erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt similarity index 100% rename from accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt rename to erpnext/accounts/Print Format/Payment Receipt Voucher/Payment Receipt Voucher.txt diff --git a/accounts/Role/Accounts Manager/Accounts Manager.txt b/erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt similarity index 100% rename from accounts/Role/Accounts Manager/Accounts Manager.txt rename to erpnext/accounts/Role/Accounts Manager/Accounts Manager.txt diff --git a/accounts/Role/Accounts User/Accounts User.txt b/erpnext/accounts/Role/Accounts User/Accounts User.txt similarity index 100% rename from accounts/Role/Accounts User/Accounts User.txt rename to erpnext/accounts/Role/Accounts User/Accounts User.txt diff --git a/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt b/erpnext/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt similarity index 100% rename from accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt rename to erpnext/accounts/TDS Rate Chart/Rate chart (01-07-2010)/Rate chart (01-07-2010).txt diff --git a/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt b/erpnext/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt similarity index 100% rename from accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt rename to erpnext/accounts/TDS Rate Chart/TDS Rate Chart October 2009 Onwards/TDS Rate Chart October 2009 Onwards.txt diff --git a/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt b/erpnext/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt similarity index 100% rename from accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt rename to erpnext/accounts/TDS Rate Chart/TDS Rate Chart for 2009-10/TDS Rate Chart for 2009-10.txt diff --git a/accounts/doctype/__init__.py b/erpnext/accounts/__init__.py similarity index 100% rename from accounts/doctype/__init__.py rename to erpnext/accounts/__init__.py diff --git a/accounts/doctype/account/__init__.py b/erpnext/accounts/doctype/__init__.py similarity index 100% rename from accounts/doctype/account/__init__.py rename to erpnext/accounts/doctype/__init__.py diff --git a/accounts/doctype/account_balance/__init__.py b/erpnext/accounts/doctype/account/__init__.py similarity index 100% rename from accounts/doctype/account_balance/__init__.py rename to erpnext/accounts/doctype/account/__init__.py diff --git a/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js similarity index 100% rename from accounts/doctype/account/account.js rename to erpnext/accounts/doctype/account/account.js diff --git a/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py similarity index 100% rename from accounts/doctype/account/account.py rename to erpnext/accounts/doctype/account/account.py diff --git a/accounts/doctype/account/account.txt b/erpnext/accounts/doctype/account/account.txt similarity index 100% rename from accounts/doctype/account/account.txt rename to erpnext/accounts/doctype/account/account.txt diff --git a/accounts/doctype/advance_adjustment_detail/__init__.py b/erpnext/accounts/doctype/account_balance/__init__.py similarity index 100% rename from accounts/doctype/advance_adjustment_detail/__init__.py rename to erpnext/accounts/doctype/account_balance/__init__.py diff --git a/accounts/doctype/account_balance/account_balance.txt b/erpnext/accounts/doctype/account_balance/account_balance.txt similarity index 100% rename from accounts/doctype/account_balance/account_balance.txt rename to erpnext/accounts/doctype/account_balance/account_balance.txt diff --git a/accounts/doctype/advance_allocation_detail/__init__.py b/erpnext/accounts/doctype/advance_adjustment_detail/__init__.py similarity index 100% rename from accounts/doctype/advance_allocation_detail/__init__.py rename to erpnext/accounts/doctype/advance_adjustment_detail/__init__.py diff --git a/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt b/erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt similarity index 100% rename from accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt rename to erpnext/accounts/doctype/advance_adjustment_detail/advance_adjustment_detail.txt diff --git a/accounts/doctype/bank_reconciliation/__init__.py b/erpnext/accounts/doctype/advance_allocation_detail/__init__.py similarity index 100% rename from accounts/doctype/bank_reconciliation/__init__.py rename to erpnext/accounts/doctype/advance_allocation_detail/__init__.py diff --git a/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt b/erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt similarity index 100% rename from accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt rename to erpnext/accounts/doctype/advance_allocation_detail/advance_allocation_detail.txt diff --git a/accounts/doctype/bank_reconciliation_detail/__init__.py b/erpnext/accounts/doctype/bank_reconciliation/__init__.py similarity index 100% rename from accounts/doctype/bank_reconciliation_detail/__init__.py rename to erpnext/accounts/doctype/bank_reconciliation/__init__.py diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.js rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.py rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.txt b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt similarity index 100% rename from accounts/doctype/bank_reconciliation/bank_reconciliation.txt rename to erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.txt diff --git a/accounts/doctype/budget_control/__init__.py b/erpnext/accounts/doctype/bank_reconciliation_detail/__init__.py similarity index 100% rename from accounts/doctype/budget_control/__init__.py rename to erpnext/accounts/doctype/bank_reconciliation_detail/__init__.py diff --git a/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt b/erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt similarity index 100% rename from accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt rename to erpnext/accounts/doctype/bank_reconciliation_detail/bank_reconciliation_detail.txt diff --git a/accounts/doctype/budget_detail/__init__.py b/erpnext/accounts/doctype/budget_control/__init__.py similarity index 100% rename from accounts/doctype/budget_detail/__init__.py rename to erpnext/accounts/doctype/budget_control/__init__.py diff --git a/accounts/doctype/budget_control/budget_control.py b/erpnext/accounts/doctype/budget_control/budget_control.py similarity index 100% rename from accounts/doctype/budget_control/budget_control.py rename to erpnext/accounts/doctype/budget_control/budget_control.py diff --git a/accounts/doctype/budget_control/budget_control.txt b/erpnext/accounts/doctype/budget_control/budget_control.txt similarity index 100% rename from accounts/doctype/budget_control/budget_control.txt rename to erpnext/accounts/doctype/budget_control/budget_control.txt diff --git a/accounts/doctype/budget_distribution/__init__.py b/erpnext/accounts/doctype/budget_detail/__init__.py similarity index 100% rename from accounts/doctype/budget_distribution/__init__.py rename to erpnext/accounts/doctype/budget_detail/__init__.py diff --git a/accounts/doctype/budget_detail/budget_detail.txt b/erpnext/accounts/doctype/budget_detail/budget_detail.txt similarity index 100% rename from accounts/doctype/budget_detail/budget_detail.txt rename to erpnext/accounts/doctype/budget_detail/budget_detail.txt diff --git a/accounts/doctype/budget_distribution_detail/__init__.py b/erpnext/accounts/doctype/budget_distribution/__init__.py similarity index 100% rename from accounts/doctype/budget_distribution_detail/__init__.py rename to erpnext/accounts/doctype/budget_distribution/__init__.py diff --git a/accounts/doctype/budget_distribution/budget_distribution.js b/erpnext/accounts/doctype/budget_distribution/budget_distribution.js similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.js rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.js diff --git a/accounts/doctype/budget_distribution/budget_distribution.py b/erpnext/accounts/doctype/budget_distribution/budget_distribution.py similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.py rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.py diff --git a/accounts/doctype/budget_distribution/budget_distribution.txt b/erpnext/accounts/doctype/budget_distribution/budget_distribution.txt similarity index 100% rename from accounts/doctype/budget_distribution/budget_distribution.txt rename to erpnext/accounts/doctype/budget_distribution/budget_distribution.txt diff --git a/accounts/doctype/cost_center/__init__.py b/erpnext/accounts/doctype/budget_distribution_detail/__init__.py similarity index 100% rename from accounts/doctype/cost_center/__init__.py rename to erpnext/accounts/doctype/budget_distribution_detail/__init__.py diff --git a/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt b/erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt similarity index 100% rename from accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt rename to erpnext/accounts/doctype/budget_distribution_detail/budget_distribution_detail.txt diff --git a/accounts/doctype/fiscal_year/__init__.py b/erpnext/accounts/doctype/cost_center/__init__.py similarity index 100% rename from accounts/doctype/fiscal_year/__init__.py rename to erpnext/accounts/doctype/cost_center/__init__.py diff --git a/erpnext/accounts/doctype/cost_center/cost_center.js b/erpnext/accounts/doctype/cost_center/cost_center.js new file mode 100644 index 0000000000..58f39e0ebf --- /dev/null +++ b/erpnext/accounts/doctype/cost_center/cost_center.js @@ -0,0 +1,72 @@ + + +//Account filtering for cost center +cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) { + var mydoc = locals[this.doctype][this.docname]; + return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'; + } + +cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){ + return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50'; +} + +//parent cost center +cur_frm.cscript.parent_cost_center = function(doc,cdt,cdn){ + if(!doc.company_name){ + alert('Please enter company name first'); + } +} + +//company abbr +cur_frm.cscript.company_name = function(doc,cdt,cdn){ + get_server_fields('get_abbr','','',doc,cdt,cdn,1); +} + +//onload if cost center is group +cur_frm.cscript.onload = function(doc, cdt, cdn) { + + if(!doc.__islocal && doc.docstatus == 0){ + get_field(doc.doctype,'group_or_ledger',doc.name).permlevel = 1; + refresh_field('group_or_ledger'); + get_field(doc.doctype,'company_name',doc.name).permlevel = 1; + refresh_field('company_name'); + } + +} + +cur_frm.cscript.refresh = function(doc, cdt, cdn) { + cur_frm.cscript.hide_unhide_group_ledger(doc); +} + + +// Hide/unhide group or ledger +// ----------------------------------------- +cur_frm.cscript.hide_unhide_group_ledger = function(doc) { + hide_field(['Convert to Group', 'Convert to Ledger']); + if (cstr(doc.group_or_ledger) == 'Group') unhide_field('Convert to Ledger'); + else if (cstr(doc.group_or_ledger) == 'Ledger') unhide_field('Convert to Group'); +} + +// Convert group to ledger +// ----------------------------------------- +cur_frm.cscript['Convert to Ledger'] = function(doc, cdt, cdn) { + $c_obj(make_doclist(cdt,cdn),'convert_group_to_ledger','',function(r,rt) { + if(r.message == 1) { + doc.group_or_ledger = 'Ledger'; + refresh_field('group_or_ledger'); + cur_frm.cscript.hide_unhide_group_ledger(doc); + } + }); +} + +// Convert ledger to group +// ----------------------------------------- +cur_frm.cscript['Convert to Group'] = function(doc, cdt, cdn) { + $c_obj(make_doclist(cdt,cdn),'convert_ledger_to_group','',function(r,rt) { + if(r.message == 1) { + doc.group_or_ledger = 'Group'; + refresh_field('group_or_ledger'); + cur_frm.cscript.hide_unhide_group_ledger(doc); + } + }); +} diff --git a/erpnext/accounts/doctype/cost_center/cost_center.py b/erpnext/accounts/doctype/cost_center/cost_center.py new file mode 100644 index 0000000000..d09331ac07 --- /dev/null +++ b/erpnext/accounts/doctype/cost_center/cost_center.py @@ -0,0 +1,103 @@ +# Please edit this list and import only required elements +import webnotes + +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint + +set = webnotes.conn.set +sql = webnotes.conn.sql +get_value = webnotes.conn.get_value +in_transaction = webnotes.conn.in_transaction +convert_to_lists = webnotes.conn.convert_to_lists + +# ----------------------------------------------------------------------------------------- + + +class DocType: + def __init__(self,d,dl): + self.doc, self.doclist = d,dl + self.nsm_parent_field = 'parent_cost_center' + + def autoname(self): + self.doc.name = self.doc.cost_center_name + ' - ' + self.doc.company_abbr + + #------------------------------------------------------------------------- + def get_abbr(self): + abbr = sql("select abbr from tabCompany where company_name='%s'"%(self.doc.company_name))[0][0] or '' + ret = { + 'company_abbr' : abbr + } + return ret + + #------------------------------------------------------------------------- + def convert_group_to_ledger(self): + if self.check_if_child_exists(): + msgprint("Cost Center: %s has existing child. You can not convert this cost center to ledger" % (self.doc.name), raise_exception=1) + elif self.check_gle_exists(): + msgprint("Cost Center with existing transaction can not be converted to ledger.", raise_exception=1) + else: + self.doc.group_or_ledger = 'Ledger' + self.doc.save() + return 1 + + #------------------------------------------------------------------------- + def convert_ledger_to_group(self): + if self.check_gle_exists(): + msgprint("Cost Center with existing transaction can not be converted to group.", raise_exception=1) + else: + self.doc.group_or_ledger = 'Group' + self.doc.save() + return 1 + + #------------------------------------------------------------------------- + def check_gle_exists(self): + return sql("select name from `tabGL Entry` where cost_center = %s and ifnull(is_cancelled, 'No') = 'No'", (self.doc.name)) + + + #------------------------------------------------------------------------- + def check_if_child_exists(self): + return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name) + + #------------------------------------------------------------------------- + def validate(self): + """ + Cost Center name must be unique + """ + if (self.doc.__islocal or not self.doc.name) and sql("select name from `tabCost Center` where cost_center_name = %s and company_name=%s", (self.doc.cost_center_name, self.doc.company_name)): + msgprint("Cost Center Name already exists, please rename", raise_exception=1) + + check_acc_list = [] + for d in getlist(self.doclist, 'budget_details'): + if [d.account, d.fiscal_year] in check_acc_list: + msgprint("Account " + cstr(d.account) + "has been entered more than once for fiscal year " + cstr(d.fiscal_year), raise_exception=1) + else: + check_acc_list.append([d.account, d.fiscal_year]) + + #------------------------------------------------------------------------- + def update_nsm_model(self): + """ + update Nested Set Model + """ + import webnotes.utils.nestedset + webnotes.utils.nestedset.update_nsm(self) + + #------------------------------------------------------------------------- + def on_update(self): + self.update_nsm_model() + + def check_if_child_exists(self): + return sql("select name from `tabCost Center` where parent_cost_center = %s and docstatus != 2", self.doc.name) + + # On Trash + #------------------------------------------------------------------------- + def on_trash(self): + if self.check_if_child_exists(): + msgprint("Child exists for this cost center. You can not trash this account.", raise_exception=1) + + # rebuild tree + set(self.doc,'old_parent', '') + self.update_nsm_model() diff --git a/accounts/doctype/cost_center/cost_center.txt b/erpnext/accounts/doctype/cost_center/cost_center.txt similarity index 89% rename from accounts/doctype/cost_center/cost_center.txt rename to erpnext/accounts/doctype/cost_center/cost_center.txt index fab2dd5f4d..94fb02bf44 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', @@ -218,18 +206,36 @@ 'trigger': 'Client' }, + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Convert to Group', + 'permlevel': 0, + 'trigger': 'Client' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Convert to Ledger', + 'permlevel': 0, + 'trigger': 'Client' + }, + # DocField { 'doctype': 'DocField', '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/form_16a/__init__.py b/erpnext/accounts/doctype/fiscal_year/__init__.py similarity index 100% rename from accounts/doctype/form_16a/__init__.py rename to erpnext/accounts/doctype/fiscal_year/__init__.py diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py similarity index 86% rename from accounts/doctype/fiscal_year/fiscal_year.py rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.py index 6b2dfdedec..74b90ccbb6 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.py +++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py @@ -21,34 +21,32 @@ class DocType: def __init__(self, d, dl): self.doc, self.doclist = d,dl - def repost(self, account = ''): + def repost(self): if not self.doc.company: msgprint("Please select company", raise_exception=1) if not in_transaction: sql("start transaction") - self.clear_account_balances(account) - self.create_account_balances(account) - self.update_opening(account) - self.post_entries(account) + self.clear_account_balances() + self.create_account_balances() + self.update_opening() + self.post_entries() sql("commit") - msg_cond = account and " and account: " + account or "" - msgprint("Account balance reposted for fiscal year: " + self.doc.name + msg_cond) + msgprint("Account balance reposted for fiscal year: " + self.doc.name) - def clear_account_balances(self, account = ''): + def clear_account_balances(self): # balances clear - `tabAccount Balance` for fiscal year - cond = account and (" and account = '" + account + "'") or '' - sql("update `tabAccount Balance` set opening=0, balance=0, debit=0, credit=0 where fiscal_year=%s %s", (self.doc.name, cond)) + sql("update `tabAccount Balance` t1, tabAccount t2 set t1.opening=0, t1.balance=0, t1.debit=0, t1.credit=0 where t1.fiscal_year=%s and t2.company = %s and t1.account = t2.name", (self.doc.name, self.doc.company)) - def create_account_balances(self, account = ''): + def create_account_balances(self): # get periods period_list = self.get_period_list() cnt = 0 # get accounts - al = account and [[account]] or sql("select name from tabAccount") + al = sql("select name from tabAccount") for a in al: # check @@ -83,14 +81,13 @@ class DocType: return periods # ==================================================================================== - def update_opening(self, account = ''): + def update_opening(self): """ set opening from last year closing """ - cond = account and (" and t2.name = '" + account + "'") or '' - abl = sql("select t1.account, t1.balance from `tabAccount Balance` t1, tabAccount t2 where t1.period= '%s' and t2.company= '%s' and ifnull(t2.is_pl_account, 'No') = 'No' and t1.account = t2.name %s for update" % (self.doc.past_year, self.doc.company, cond)) + abl = sql("select t1.account, t1.balance from `tabAccount Balance` t1, tabAccount t2 where t1.period= '%s' and t2.company= '%s' and ifnull(t2.is_pl_account, 'No') = 'No' and t1.account = t2.name for update" % (self.doc.past_year, self.doc.company)) cnt = 0 for ab in abl: @@ -108,11 +105,10 @@ class DocType: return sql("select debit_or_credit, lft, rgt, is_pl_account from tabAccount where name=%s", account)[0] # ==================================================================================== - def post_entries(self, account = ''): + def post_entries(self): sql("LOCK TABLE `tabGL Entry` WRITE") - cond = account and (" and account = '" + account + "'") or '' # post each gl entry (batch or complete) - gle = sql("select name, account, debit, credit, is_opening, posting_date from `tabGL Entry` where fiscal_year=%s and ifnull(is_cancelled,'No')='No' and company=%s %s", (self.doc.name, self.doc.company, cond)) + gle = sql("select name, account, debit, credit, is_opening, posting_date from `tabGL Entry` where fiscal_year=%s and ifnull(is_cancelled,'No')='No' and company=%s", (self.doc.name, self.doc.company)) account_details = {} cnt = 0 @@ -133,8 +129,8 @@ class DocType: # build dict p = { - 'debit': flt(entry[2]) - ,'credit':flt(entry[3]) + 'debit': entry[4]=='No' and flt(entry[2]) or 0 + ,'credit': entry[4]=='No' and flt(entry[3]) or 0 ,'opening': entry[4]=='Yes' and diff or 0 # end date conditino only if it is not opening diff --git a/accounts/doctype/fiscal_year/fiscal_year.txt b/erpnext/accounts/doctype/fiscal_year/fiscal_year.txt similarity index 100% rename from accounts/doctype/fiscal_year/fiscal_year.txt rename to erpnext/accounts/doctype/fiscal_year/fiscal_year.txt diff --git a/accounts/doctype/form_16a_ack_detail/__init__.py b/erpnext/accounts/doctype/form_16a/__init__.py similarity index 100% rename from accounts/doctype/form_16a_ack_detail/__init__.py rename to erpnext/accounts/doctype/form_16a/__init__.py diff --git a/accounts/doctype/form_16a/form_16a.js b/erpnext/accounts/doctype/form_16a/form_16a.js similarity index 100% rename from accounts/doctype/form_16a/form_16a.js rename to erpnext/accounts/doctype/form_16a/form_16a.js diff --git a/accounts/doctype/form_16a/form_16a.py b/erpnext/accounts/doctype/form_16a/form_16a.py similarity index 100% rename from accounts/doctype/form_16a/form_16a.py rename to erpnext/accounts/doctype/form_16a/form_16a.py diff --git a/accounts/doctype/form_16a/form_16a.txt b/erpnext/accounts/doctype/form_16a/form_16a.txt similarity index 100% rename from accounts/doctype/form_16a/form_16a.txt rename to erpnext/accounts/doctype/form_16a/form_16a.txt diff --git a/accounts/doctype/form_16a_tax_detail/__init__.py b/erpnext/accounts/doctype/form_16a_ack_detail/__init__.py similarity index 100% rename from accounts/doctype/form_16a_tax_detail/__init__.py rename to erpnext/accounts/doctype/form_16a_ack_detail/__init__.py diff --git a/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt b/erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt similarity index 100% rename from accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt rename to erpnext/accounts/doctype/form_16a_ack_detail/form_16a_ack_detail.txt diff --git a/accounts/doctype/gl_control/__init__.py b/erpnext/accounts/doctype/form_16a_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/gl_control/__init__.py rename to erpnext/accounts/doctype/form_16a_tax_detail/__init__.py diff --git a/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt b/erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt similarity index 100% rename from accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt rename to erpnext/accounts/doctype/form_16a_tax_detail/form_16a_tax_detail.txt diff --git a/accounts/doctype/gl_entry/__init__.py b/erpnext/accounts/doctype/gl_control/__init__.py similarity index 100% rename from accounts/doctype/gl_entry/__init__.py rename to erpnext/accounts/doctype/gl_control/__init__.py diff --git a/accounts/doctype/gl_control/gl_control.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 a346b65a57..44a9e8d8c9 100644 --- a/accounts/doctype/gl_control/gl_control.py +++ b/erpnext/accounts/doctype/gl_control/gl_control.py @@ -191,6 +191,7 @@ class DocType: else: self.entries.append(le) + # Save GL Entries # ---------------- def save_entries(self, cancel, adv_adj, update_outstanding): @@ -200,7 +201,6 @@ class DocType: tmp=le.debit le.debit, le.credit = abs(flt(le.credit)), abs(flt(tmp)) - le_obj = get_obj(doc=le) # validate except on_cancel if not cancel: @@ -213,10 +213,12 @@ class DocType: # update total debit / credit self.td += flt(le.debit) self.tc += flt(le.credit) - + + # Make Multiple Entries # --------------------- def make_gl_entries(self, doc, doclist, cancel=0, adv_adj = 0, use_mapper='', merge_entries = 1, update_outstanding='Yes'): + self.entries = [] # get entries le_map_list = sql("select * from `tabGL Mapper Detail` where parent = %s", use_mapper or doc.doctype, as_dict=1) self.td, self.tc = 0.0, 0.0 @@ -329,6 +331,7 @@ class DocType: else: msgprint("Allocation amount cannot be greater than advance amount") raise Exception + # Add extra row in jv detail for unadjusted amount #-------------------------------------------------- @@ -351,7 +354,7 @@ class DocType: add.against_account = cstr(jvd[0][3]) add.is_advance = 'Yes' add.save(1) - + # check if advance entries are still valid # ---------------------------------------- def validate_jv_entry(self, d, account_head, dr_or_cr): @@ -359,15 +362,92 @@ class DocType: # 2. check if amount is same # 3. check if is_advance is 'Yes' # 4. check if jv is submitted - ret = sql("select t2.%s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and (t2.against_voucher = '' or t2.against_voucher is null) and (t2.against_invoice = '' or t2.against_invoice is null) and t2.account = '%s' and t1.name = '%s' and t2.name = '%s' and t2.is_advance = 'Yes' and t1.docstatus=1 and t2.%s = %s" % ( dr_or_cr, account_head, d.journal_voucher, d.jv_detail_no, dr_or_cr, d.advance_amount)) + ret = sql("select t2.%s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and ifnull(t2.against_voucher, '') = '' and ifnull(t2.against_invoice, '') = '' and t2.account = '%s' and t1.name = '%s' and t2.name = '%s' and t2.is_advance = 'Yes' and t1.docstatus=1 and t2.%s = %s" % (dr_or_cr, account_head, d.journal_voucher, d.jv_detail_no, dr_or_cr, d.advance_amount)) if (not ret): msgprint("Please click on 'Get Advances Paid' button as the advance entries have been changed.") raise Exception return -############################################################################## -# Repair Outstanding Amount -############################################################################## + +###################################################################################################################### + + #------------------------------------------ + def reconcile_against_document(self, args): + """ + Cancel JV, Update aginst document, split if required and resubmit jv + """ + + for d in args: + self.check_if_jv_modified(d) + + against_fld = { + 'Journal Voucher' : 'against_jv', + 'Receivable Voucher' : 'against_invoice', + 'Payable Voucher' : 'against_voucher' + } + + d['against_fld'] = against_fld[d['against_voucher_type']] + + # cancel JV + jv_obj = get_obj('Journal Voucher', d['voucher_no'], with_children=1) + self.make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj =1) + + # update ref in JV Detail + self.update_against_doc(d, jv_obj) + + # re-submit JV + jv_obj = get_obj('Journal Voucher', d['voucher_no'], with_children =1) + self.make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj =1) + + #------------------------------------------ + def update_against_doc(self, d, jv_obj): + """ + Updates against document, if partial amount splits into rows + """ + + sql(""" + update `tabJournal Voucher Detail` t1, `tabJournal Voucher` t2 + set t1.%(dr_or_cr)s = '%(allocated_amt)s', t1.%(against_fld)s = '%(against_voucher)s', t2.modified = now() + where t1.name = '%(voucher_detail_no)s' and t1.parent = t2.name""" % d) + + if d['allocated_amt'] < d['unadjusted_amt']: + jvd = sql("select cost_center, balance, against_account, is_advance from `tabJournal Voucher Detail` where name = '%s'" % d['voucher_detail_no']) + # new entry with balance amount + ch = addchild(jv_obj.doc, 'entries', 'Journal Voucher Detail', 1) + ch.account = d['account'] + ch.cost_center = cstr(jvd[0][0]) + ch.balance = cstr(jvd[0][1]) + ch.fields[d['dr_or_cr']] = flt(d['unadjusted_amt']) - flt(d['allocated_amt']) + ch.fields[d['dr_or_cr']== 'debit' and 'credit' or 'debit'] = 0 + ch.against_account = cstr(jvd[0][2]) + ch.is_advance = cstr(jvd[0][3]) + ch.docstatus = 1 + ch.save(1) + + #------------------------------------------ + def check_if_jv_modified(self, args): + """ + check if there is already a voucher reference + check if amount is same + check if jv is submitted + """ + ret = sql(""" + select t2.%(dr_or_cr)s from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 + where t1.name = t2.parent and t2.account = '%(account)s' + and ifnull(t2.against_voucher, '')='' and ifnull(t2.against_invoice, '')='' and ifnull(t2.against_jv, '')='' + and t1.name = '%(voucher_no)s' and t2.name = '%(voucher_detail_no)s' + and t1.docstatus=1 and t2.%(dr_or_cr)s = %(unadjusted_amt)s + """ % (args)) + + if not ret: + msgprint("Payment Entry has been modified after you pulled it. Please pull it again.", raise_exception=1) + +###################################################################################################################### + + + + # Repair Outstanding Amount + #--------------------------------- def repair_voucher_outstanding(self, voucher_obj): msg = [] diff --git a/accounts/doctype/gl_control/gl_control.txt b/erpnext/accounts/doctype/gl_control/gl_control.txt similarity index 100% rename from accounts/doctype/gl_control/gl_control.txt rename to erpnext/accounts/doctype/gl_control/gl_control.txt diff --git a/accounts/doctype/journal_voucher/__init__.py b/erpnext/accounts/doctype/gl_entry/__init__.py similarity index 100% rename from accounts/doctype/journal_voucher/__init__.py rename to erpnext/accounts/doctype/gl_entry/__init__.py diff --git a/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py similarity index 98% rename from accounts/doctype/gl_entry/gl_entry.py rename to erpnext/accounts/doctype/gl_entry/gl_entry.py index 5d3976056c..c45e1625ac 100644 --- a/accounts/doctype/gl_entry/gl_entry.py +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py @@ -146,8 +146,8 @@ class DocType: # build dict p = { - 'debit': flt(debit) - ,'credit':flt(credit) + 'debit': self.doc.is_opening=='No' and flt(debit) or 0 + ,'credit':self.doc.is_opening=='No' and flt(credit) or 0 ,'opening': self.doc.is_opening=='Yes' and amt or 0 # end date condition only if it is not opening ,'end_date_condition':(self.doc.is_opening!='Yes' and ("and ab.end_date >= '"+self.doc.posting_date+"'") or '') diff --git a/accounts/doctype/gl_entry/gl_entry.txt b/erpnext/accounts/doctype/gl_entry/gl_entry.txt similarity index 100% rename from accounts/doctype/gl_entry/gl_entry.txt rename to erpnext/accounts/doctype/gl_entry/gl_entry.txt diff --git a/accounts/doctype/journal_voucher_detail/__init__.py b/erpnext/accounts/doctype/internal_reconciliation/__init__.py similarity index 100% rename from accounts/doctype/journal_voucher_detail/__init__.py rename 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 0000000000..bcd5c44277 --- /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 0000000000..7c345467b6 --- /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 0000000000..cc1523a910 --- /dev/null +++ b/erpnext/accounts/doctype/internal_reconciliation/internal_reconciliation.txt @@ -0,0 +1,266 @@ +# DocType, Internal Reconciliation +[ + + # These values are common in all dictionaries + { + 'creation': '2011-08-30 11:45:50', + 'docstatus': 0, + 'modified': '2011-09-26 14:21:22', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1316509358', + 'colour': 'White:FFF', + 'default_print_format': 'Standard', + 'doctype': 'DocType', + 'document_type': 'Other', + 'issingle': 1, + 'module': 'Accounts', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 1, + 'version': 35 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'Internal Reconciliation', + 'parentfield': 'fields', + 'parenttype': 'DocType' + }, + + # These values are common for all DocPerm + { + 'doctype': 'DocPerm', + 'name': '__common__', + 'parent': 'Internal Reconciliation', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'read': 1 + }, + + # DocType, Internal Reconciliation + { + 'doctype': 'DocType', + 'name': 'Internal Reconciliation' + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'System Manager', + 'write': 1 + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'Accounts Manager', + 'write': 1 + }, + + # DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'permlevel': 0, + 'role': 'Accounts User', + 'write': 1 + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'permlevel': 1, + 'role': 'All' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'account', + 'fieldtype': 'Link', + 'label': 'Account', + 'options': 'Account', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'voucher_type', + 'fieldtype': 'Select', + 'label': 'Voucher Type', + 'options': 'Sales Invoice\nPurchase Invoice\nJournal Voucher', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'voucher_no', + 'fieldtype': 'Link', + 'label': 'Voucher No', + 'permlevel': 0, + 'trigger': 'Client' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'total_amount', + 'fieldtype': 'Currency', + 'label': 'Total Amount', + 'permlevel': 1 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'pending_amt_to_reconcile', + 'fieldtype': 'Currency', + 'label': 'Pending Amt To Reconcile', + 'permlevel': 1 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'label': 'Payment Entries', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'label': "
Filter payment entries based on date:
", + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'from_date', + 'fieldtype': 'Date', + 'label': 'From Date', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'to_date', + 'fieldtype': 'Date', + 'label': 'To Date', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'label': "
Filter payment entries based on amount:
", + 'permlevel': 0, + 'width': '50%' + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldname': 'amt_greater_than', + 'fieldtype': 'Data', + 'label': 'Amount >=', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'amt_less_than', + 'fieldtype': 'Data', + 'label': 'Amount <=', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'options': 'Simple', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Pull Payment Entries', + 'options': 'get_payment_entries', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'ir_payment_details', + 'fieldtype': 'Table', + 'label': 'Payment Entries', + 'options': 'IR Payment Detail', + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'HTML', + 'label': 'Reconcile HTML', + 'options': "
Select Payment Voucher and Amount to Reconcile in the above table and then click Reconcile button
", + 'permlevel': 0 + }, + + # DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'fieldtype': 'Button', + 'label': 'Reconcile', + 'options': 'reconcile', + 'permlevel': 0, + 'trigger': 'Client' + } +] \ No newline at end of file diff --git a/erpnext/accounts/doctype/internal_reconciliation/test_ir.py b/erpnext/accounts/doctype/internal_reconciliation/test_ir.py new file mode 100644 index 0000000000..b35af6eaf6 --- /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/lease_agreement/__init__.py b/erpnext/accounts/doctype/ir_payment_detail/__init__.py similarity index 100% rename from accounts/doctype/lease_agreement/__init__.py rename 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 0000000000..b35c4977eb --- /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/lease_installment/__init__.py b/erpnext/accounts/doctype/journal_voucher/__init__.py similarity index 100% rename from accounts/doctype/lease_installment/__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/ledger_balance_export/__init__.py b/erpnext/accounts/doctype/journal_voucher_detail/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from accounts/doctype/ledger_balance_export/__init__.py rename to erpnext/accounts/doctype/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/ledger_detail/__init__.py b/erpnext/accounts/doctype/lease_agreement/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from accounts/doctype/ledger_detail/__init__.py rename to erpnext/accounts/doctype/lease_agreement/__init__.py diff --git a/accounts/doctype/lease_agreement/lease_agreement.js b/erpnext/accounts/doctype/lease_agreement/lease_agreement.js similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.js rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.js diff --git a/accounts/doctype/lease_agreement/lease_agreement.py b/erpnext/accounts/doctype/lease_agreement/lease_agreement.py similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.py rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.py diff --git a/accounts/doctype/lease_agreement/lease_agreement.txt b/erpnext/accounts/doctype/lease_agreement/lease_agreement.txt similarity index 100% rename from accounts/doctype/lease_agreement/lease_agreement.txt rename to erpnext/accounts/doctype/lease_agreement/lease_agreement.txt diff --git a/accounts/doctype/mode_of_payment/__init__.py b/erpnext/accounts/doctype/lease_installment/__init__.py similarity index 100% rename from accounts/doctype/mode_of_payment/__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/payable_voucher/__init__.py b/erpnext/accounts/doctype/ledger_balance_export/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from accounts/doctype/payable_voucher/__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/period_closing_voucher/__init__.py b/erpnext/accounts/doctype/ledger_detail/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from accounts/doctype/period_closing_voucher/__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/pos_setting/__init__.py b/erpnext/accounts/doctype/mode_of_payment/__init__.py similarity index 100% rename from accounts/doctype/pos_setting/__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/purchase_tax_detail/__init__.py b/erpnext/accounts/doctype/payable_voucher/__init__.py similarity index 100% rename from accounts/doctype/purchase_tax_detail/__init__.py rename to erpnext/accounts/doctype/payable_voucher/__init__.py diff --git a/accounts/doctype/payable_voucher/payable_voucher.js b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js similarity index 95% rename from accounts/doctype/payable_voucher/payable_voucher.js rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.js index 4a566d373b..5c27683504 100644 --- a/accounts/doctype/payable_voucher/payable_voucher.js +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.js @@ -20,12 +20,15 @@ cur_frm.cscript.onload = function(doc,dt,dn) { } if(doc.__islocal){ - if(doc.supplier) {cur_frm.cscript.supplier(doc,dt,dn)} - hide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + hide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email']); } - +} - if(doc.supplier) unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); + +//Onload post render +//------------------------ +cur_frm.cscript.onload_post_render = function(doc, dt, dn) { + if(doc.__islocal && doc.supplier) cur_frm.cscript.supplier(doc,dt,dn); } // Refresh @@ -166,10 +169,10 @@ cur_frm.cscript['Recalculate'] = function(doc, dt, dn) { // ----------------- cur_frm.cscript['Get Items'] = function(doc, dt, dn) { var callback = function(r,rt) { - unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); - refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email','entries','purchase_receipt_main','purchase_order_main']); + unhide_field(['supplier_address', 'contact_person', 'supplier_name', 'address_display', 'contact_display', 'contact_mobile','contact_email']); + refresh_many(['credit_to','supplier','supplier_address','contact_person','supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email','entries', 'purchase_receipt_main', 'purchase_order_main', 'purchase_tax_details']); } - get_server_fields('pull_details','','',doc, dt, dn,1,callback); + $c_obj(make_doclist(dt,dn),'pull_details','',callback); } diff --git a/accounts/doctype/payable_voucher/payable_voucher.py b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py similarity index 94% rename from accounts/doctype/payable_voucher/payable_voucher.py rename to erpnext/accounts/doctype/payable_voucher/payable_voucher.py index b403d20c02..9f2848ad6f 100644 --- a/accounts/doctype/payable_voucher/payable_voucher.py +++ b/erpnext/accounts/doctype/payable_voucher/payable_voucher.py @@ -78,19 +78,13 @@ class DocType(TransactionBase): def pull_details(self): if self.doc.purchase_receipt_main: self.validate_duplicate_docname('purchase_receipt') - self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Payable Voucher').dt_map('Purchase Receipt', 'Payable Voucher', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Payable Voucher'],['Purchase Receipt Detail', 'PV Detail']]") + self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Payable Voucher').dt_map('Purchase Receipt', 'Payable Voucher', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Payable Voucher'], ['Purchase Receipt Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]") elif self.doc.purchase_order_main: self.validate_duplicate_docname('purchase_order') - self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail']]") + self.doclist = get_obj('DocType Mapper', 'Purchase Order-Payable Voucher').dt_map('Purchase Order', 'Payable Voucher', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Payable Voucher'],['PO Detail', 'PV Detail'], ['Purchase Tax Detail','Purchase Tax Detail']]") ret = self.get_credit_to() - #self.doc.supplier_name = ret['supplier_name'] - #self.doc.supplier_address = ret['supplier_address'] - - #self.doc.cst_no =ret['cst_no'] - #self.doc.bst_no = ret['bst_no'] - #self.doc.vat_tin_no = ret['vat_tin_no'] if ret.has_key('credit_to'): self.doc.credit_to = ret['credit_to'] @@ -447,12 +441,38 @@ class DocType(TransactionBase): if not submitted: msgprint("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted") raise Exception , "Validation Error." - - def update_against_document_in_jv(self, against_document_no, against_document_doctype): - get_obj('GL Control').update_against_document_in_jv( self,'advance_allocation_details', against_document_no, against_document_doctype, self.doc.credit_to, 'debit',self.doc.doctype) + + + #-------------------------------------------------------------------- + def update_against_document_in_jv(self): + """ + Links invoice and advance voucher: + 1. cancel advance voucher + 2. split into multiple rows if partially adjusted, assign against voucher + 3. submit advance voucher + """ + + lst = [] + for d in getlist(self.doclist, 'advance_allocation_details'): + if flt(d.allocated_amount) > 0: + args = { + 'voucher_no' : d.journal_voucher, + 'voucher_detail_no' : d.jv_detail_no, + 'against_voucher_type' : 'Payable Voucher', + 'against_voucher' : self.doc.name, + 'account' : self.doc.credit_to, + 'is_advance' : 'Yes', + 'dr_or_cr' : 'debit', + 'unadjusted_amt' : flt(d.advance_amount), + 'allocated_amt' : flt(d.allocated_amount) + } + lst.append(args) + + if lst: + get_obj('GL Control').reconcile_against_document(lst) # On Submit - # ---------- + #-------------------------------------------------------------------- def on_submit(self): self.check_prev_docstatus() @@ -462,7 +482,9 @@ class DocType(TransactionBase): # this sequence because outstanding may get -negative get_obj(dt='GL Control').make_gl_entries(self.doc, self.doclist) - self.update_against_document_in_jv(self.doc.name, self.doc.doctype) + + self.update_against_document_in_jv() + get_obj(dt = 'Purchase Common').update_prevdoc_detail(self, is_submit = 1) diff --git a/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/pv_detail/__init__.py b/erpnext/accounts/doctype/period_closing_voucher/__init__.py similarity index 100% rename from accounts/doctype/pv_detail/__init__.py rename to erpnext/accounts/doctype/period_closing_voucher/__init__.py diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.js b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.js similarity index 100% rename from accounts/doctype/period_closing_voucher/period_closing_voucher.js rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.js diff --git a/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py similarity index 93% rename from accounts/doctype/period_closing_voucher/period_closing_voucher.py rename to erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py index c7e5db6639..895130ea0f 100644 --- a/accounts/doctype/period_closing_voucher/period_closing_voucher.py +++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py @@ -79,8 +79,8 @@ class DocType: # Get account (pl) specific balance #=========================================================== def get_pl_balances(self, d_or_c): - acc_bal = sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' and ifnull(t2.freeze_account, 'No') = 'No' and t2.is_pl_account = 'Yes' and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' and t1.posting_date between '%s' and '%s' group by t1.account " % (d_or_c, self.doc.company, self.year_start_date, self.doc.posting_date)) - return acc_bal + acc_bal = sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' and ifnull(t2.freeze_account, 'No') = 'No' and ifnull(t2.is_pl_account, 'No') = 'Yes' and ifnull(is_cancelled, 'No') = 'No' and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' and t1.posting_date between '%s' and '%s' group by t1.account " % (d_or_c, self.doc.company, self.year_start_date, self.doc.posting_date)) + return acc_bal # Makes GL Entries @@ -185,7 +185,7 @@ class DocType: # ============================================================= def on_cancel(self): # get all submit entries of current closing entry voucher - gl_entries = sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s'" % (self.doc.name)) + gl_entries = sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s' and ifnull(is_cancelled, 'No') = 'No'" % (self.doc.name)) # Swap Debit & Credit Column and make gl entry for gl in gl_entries: 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/receivable_voucher/__init__.py b/erpnext/accounts/doctype/pos_setting/__init__.py similarity index 100% rename from accounts/doctype/receivable_voucher/__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 0000000000..4eed7b6918 --- /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/rv_detail/__init__.py b/erpnext/accounts/doctype/purchase_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/rv_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/rv_tax_detail/__init__.py b/erpnext/accounts/doctype/pv_detail/__init__.py similarity index 100% rename from accounts/doctype/rv_tax_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/tds_category/__init__.py b/erpnext/accounts/doctype/receivable_voucher/__init__.py similarity index 100% rename from accounts/doctype/tds_category/__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 0000000000..ec8f2918d0 --- /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 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 f26374a382..6d1f80adb9 100644 --- a/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -139,7 +139,6 @@ class DocType(TransactionBase): Loads default accounts from items, customer when called from mapper """ self.get_income_account('entries') - self.doc.debit_to = self.get_customer_account() def get_income_account(self,doctype): for d in getlist(self.doclist, doctype): @@ -226,40 +225,47 @@ class DocType(TransactionBase): #----------------------------------------------------------------- - # ADVANCE ALLOCATION - #----------------------------------------------------------------- - def update_against_document_in_jv(self,against_document_no, against_document_doctype): - get_obj('GL Control').update_against_document_in_jv( self, 'advance_adjustment_details', against_document_no, against_document_doctype, self.doc.debit_to, 'credit', self.doc.doctype) + def update_against_document_in_jv(self): + """ + Links invoice and advance voucher: + 1. cancel advance voucher + 2. split into multiple rows if partially adjusted, assign against voucher + 3. submit advance voucher + """ + + lst = [] + for d in getlist(self.doclist, 'advance_adjustment_details'): + if flt(d.allocated_amount) > 0: + args = { + 'voucher_no' : d.journal_voucher, + 'voucher_detail_no' : d.jv_detail_no, + 'against_voucher_type' : 'Receivable Voucher', + 'against_voucher' : self.doc.name, + 'account' : self.doc.debit_to, + 'is_advance' : 'Yes', + 'dr_or_cr' : 'credit', + 'unadjusted_amt' : flt(d.advance_amount), + 'allocated_amt' : flt(d.allocated_amount) + } + lst.append(args) + + if lst: + get_obj('GL Control').reconcile_against_document(lst) - - -# ************************************* VALIDATE ********************************************** - # Get Customer Name and address based on Debit To Account selected - # This case arises in case of direct RV where user doesn't enter customer name. - # Hence it should be fetched from Account Head. - # ----------------------------------------------------------------------------- - #def get_customer_details(self): - # get_obj('Sales Common').get_customer_details(self, inv_det_reqd = 1) - # self.get_cust_and_due_date() - - # Validate Customer Name with SO or DN if items are fetched from SO or DN # ------------------------------------------------------------------------ def validate_customer(self): + """ + Validate customer name with SO and DN + """ for d in getlist(self.doclist,'entries'): - customer = '' - if d.sales_order: - customer = sql("select customer from `tabSales Order` where name = '%s'" % d.sales_order)[0][0] - doctype = 'sales order' - doctype_no = cstr(d.sales_order) - if d.delivery_note: - customer = sql("select customer from `tabDelivery Note` where name = '%s'" % d.delivery_note)[0][0] - doctype = 'delivery note' - doctype_no = cstr(d.delivery_note) - if customer and not cstr(self.doc.customer) == cstr(customer): - msgprint("Customer %s do not match with customer of %s %s." %(self.doc.customer,doctype,doctype_no)) - raise Exception , " Validation Error " - + dt = d.delivery_note and 'Delivery Note' or d.sales_order and 'Sales Order' or '' + if dt: + dt_no = d.delivery_note or d.sales_order + cust = sql("select customer from `tab%s` where name = %s" % (dt, '%s'), dt_no) + if cust and cstr(cust[0][0]) != cstr(self.doc.customer): + msgprint("Customer %s does not match with customer of %s: %s." %(self.doc.customer, dt, dt_no), raise_exception=1) + # Validates Debit To Account and Customer Matches # ------------------------------------------------ @@ -546,7 +552,7 @@ class DocType(TransactionBase): self.make_gl_entries() if not cint(self.doc.is_pos) == 1: - self.update_against_document_in_jv(self.doc.name, self.doc.doctype) + self.update_against_document_in_jv() # on submit notification # get_obj('Notification Control').notify_contact('Sales Invoice', self.doc.doctype,self.doc.name, self.doc.email_id, self.doc.contact_person) 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 f2f9eafb20..2f3b48d3fc 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, @@ -596,13 +562,27 @@ 'trigger': 'Client' }, + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Section Break', + 'permlevel': 0 + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldtype': 'Column Break', + 'permlevel': 0, + 'width': '50%' + }, + # DocField { 'description': 'Will be calculated automatically when you enter the details', 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 36, 'label': 'Net Total*', 'oldfieldname': 'net_total', 'oldfieldtype': 'Currency', @@ -615,7 +595,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 37, 'label': 'Rates HTML', 'oldfieldtype': 'HTML', 'options': '* Rates in standard currency', @@ -623,14 +602,6 @@ 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldtype': 'Section Break', - 'idx': 38, - 'permlevel': 0 - }, - # DocField { 'colour': 'White:FFF', @@ -638,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'cash_bank_account', 'fieldtype': 'Link', - 'idx': 39, 'label': 'Cash/Bank Account', 'oldfieldname': 'cash_bank_account', 'oldfieldtype': 'Link', @@ -654,7 +624,6 @@ 'doctype': 'DocField', 'fieldname': 'paid_amount', 'fieldtype': 'Currency', - 'idx': 40, 'label': 'Paid Amount', 'oldfieldname': 'paid_amount', 'oldfieldtype': 'Currency', @@ -667,7 +636,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 41, 'permlevel': 0, 'width': '50%' }, @@ -679,7 +647,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_account', 'fieldtype': 'Link', - 'idx': 42, 'label': 'Write Off Account', 'options': 'Account', 'permlevel': 0, @@ -693,7 +660,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_cost_center', 'fieldtype': 'Link', - 'idx': 43, 'label': 'Write Off Cost Center', 'options': 'Cost Center', 'permlevel': 0, @@ -707,7 +673,6 @@ 'doctype': 'DocField', 'fieldname': 'write_off_amount', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Write Off Amount', 'permlevel': 0, 'print_hide': 1 @@ -717,7 +682,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 45, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -728,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 46, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -741,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 47, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -756,7 +718,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 48, 'label': 'Taxes1', 'oldfieldname': 'other_charges', 'oldfieldtype': 'Table', @@ -764,24 +725,10 @@ 'permlevel': 0 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'other_charges_total', - 'fieldtype': 'Currency', - 'idx': 49, - 'label': 'Total Charges', - 'oldfieldname': 'other_charges_total', - 'oldfieldtype': 'Currency', - 'permlevel': 1, - 'print_hide': 1 - }, - # DocField { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 50, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -789,11 +736,22 @@ 'trigger': 'Client' }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'other_charges_total', + 'fieldtype': 'Currency', + 'label': 'Total Charges', + 'oldfieldname': 'other_charges_total', + 'oldfieldtype': 'Currency', + 'permlevel': 1, + 'print_hide': 1 + }, + # DocField { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 51, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0, @@ -805,7 +763,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 52, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -816,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 53, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -830,7 +786,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 54, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -844,7 +799,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 55, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -857,7 +811,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 56, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -869,7 +822,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 57, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -881,7 +833,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 58, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -895,7 +846,6 @@ 'doctype': 'DocField', 'fieldname': 'is_opening', 'fieldtype': 'Select', - 'idx': 59, 'in_filter': 1, 'label': 'Is Opening', 'oldfieldname': 'is_opening', @@ -912,7 +862,6 @@ 'doctype': 'DocField', 'fieldname': 'aging_date', 'fieldtype': 'Date', - 'idx': 60, 'label': 'Aging Date', 'oldfieldname': 'aging_date', 'oldfieldtype': 'Date', @@ -927,7 +876,6 @@ 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 61, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Select', @@ -941,7 +889,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 62, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -957,7 +904,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 63, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -973,7 +919,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 64, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -992,7 +937,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1008,7 +952,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 66, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -1018,7 +961,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 67, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -1035,7 +977,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 68, 'in_filter': 1, 'label': 'Fiscal Year', 'no_copy': 0, @@ -1055,7 +996,6 @@ 'doctype': 'DocField', 'fieldname': 'cancel_reason', 'fieldtype': 'Data', - 'idx': 69, 'label': 'Cancel Reason', 'oldfieldname': 'cancel_reason', 'oldfieldtype': 'Data', @@ -1068,7 +1008,6 @@ 'doctype': 'DocField', 'fieldname': 'remarks', 'fieldtype': 'Small Text', - 'idx': 70, 'label': 'Remarks', 'no_copy': 1, 'oldfieldname': 'remarks', @@ -1083,7 +1022,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 71, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1095,7 +1033,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 72, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1108,7 +1045,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 73, 'in_filter': 1, 'label': 'Grand Total', 'oldfieldname': 'grand_total', @@ -1124,7 +1060,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 74, 'label': 'Rounded Total', 'oldfieldname': 'rounded_total', 'oldfieldtype': 'Currency', @@ -1139,7 +1074,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 75, 'label': 'In Words', 'oldfieldname': 'in_words', 'oldfieldtype': 'Data', @@ -1152,7 +1086,6 @@ 'doctype': 'DocField', 'fieldname': 'total_advance', 'fieldtype': 'Currency', - 'idx': 76, 'label': 'Total Advance', 'oldfieldname': 'total_advance', 'oldfieldtype': 'Currency', @@ -1166,7 +1099,6 @@ 'doctype': 'DocField', 'fieldname': 'outstanding_amount', 'fieldtype': 'Currency', - 'idx': 77, 'label': 'Outstanding Amount', 'no_copy': 1, 'oldfieldname': 'outstanding_amount', @@ -1180,7 +1112,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 78, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1192,7 +1123,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 79, 'label': 'Grand Total (Export)', 'oldfieldname': 'grand_total_export', 'oldfieldtype': 'Currency', @@ -1206,7 +1136,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 80, 'label': 'Rounded Total (Export)', 'oldfieldname': 'rounded_total_export', 'oldfieldtype': 'Currency', @@ -1221,7 +1150,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 81, 'label': 'In Words (Export)', 'oldfieldname': 'in_words_export', 'oldfieldtype': 'Data', @@ -1234,7 +1162,6 @@ 'doctype': 'DocField', 'fieldname': 'gross_profit', 'fieldtype': 'Currency', - 'idx': 82, 'label': 'Gross Profit', 'oldfieldname': 'gross_profit', 'oldfieldtype': 'Currency', @@ -1247,7 +1174,6 @@ 'doctype': 'DocField', 'fieldname': 'gross_profit_percent', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Gross Profit (%)', 'oldfieldname': 'gross_profit_percent', 'oldfieldtype': 'Currency', @@ -1260,7 +1186,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 84, 'label': 'Advances', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1271,7 +1196,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 85, 'label': 'Get Advances Received', 'oldfieldtype': 'Button', 'options': 'get_advances', @@ -1284,7 +1208,6 @@ 'doctype': 'DocField', 'fieldname': 'advance_adjustment_details', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Advance Adjustment Detail', 'oldfieldname': 'advance_adjustment_details', 'oldfieldtype': 'Table', @@ -1297,7 +1220,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 87, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1309,7 +1231,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 88, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1321,7 +1242,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 89, 'in_filter': 1, 'label': 'Sales Partner', 'oldfieldname': 'sales_partner', @@ -1337,7 +1257,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 90, 'label': 'Commission Rate (%)', 'oldfieldname': 'commission_rate', 'oldfieldtype': 'Currency', @@ -1352,7 +1271,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 91, 'label': 'Total Commission', 'oldfieldname': 'total_commission', 'oldfieldtype': 'Currency', @@ -1366,7 +1284,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 92, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'print_hide': 1, @@ -1378,7 +1295,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1392,7 +1308,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Outstanding Amt', 'oldfieldtype': 'Button', 'options': 'repair_rv_outstanding', @@ -1406,7 +1321,6 @@ 'fieldname': 'against_income_account', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 95, 'label': 'Against Income Account', 'no_copy': 1, 'oldfieldname': 'against_income_account', diff --git a/accounts/doctype/tds_category_account/__init__.py b/erpnext/accounts/doctype/rv_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_category_account/__init__.py rename to erpnext/accounts/doctype/rv_detail/__init__.py diff --git a/accounts/doctype/rv_detail/rv_detail.txt b/erpnext/accounts/doctype/rv_detail/rv_detail.txt similarity index 100% rename from accounts/doctype/rv_detail/rv_detail.txt rename to erpnext/accounts/doctype/rv_detail/rv_detail.txt diff --git a/accounts/doctype/tds_control/__init__.py b/erpnext/accounts/doctype/rv_tax_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_control/__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_detail/__init__.py b/erpnext/accounts/doctype/tds_category/__init__.py similarity index 100% rename from accounts/doctype/tds_detail/__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_payment/__init__.py b/erpnext/accounts/doctype/tds_category_account/__init__.py similarity index 100% rename from accounts/doctype/tds_payment/__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_payment_detail/__init__.py b/erpnext/accounts/doctype/tds_control/__init__.py similarity index 100% rename from accounts/doctype/tds_payment_detail/__init__.py rename to erpnext/accounts/doctype/tds_control/__init__.py diff --git a/accounts/doctype/tds_control/tds_control.js b/erpnext/accounts/doctype/tds_control/tds_control.js similarity index 100% rename from accounts/doctype/tds_control/tds_control.js rename to erpnext/accounts/doctype/tds_control/tds_control.js diff --git a/accounts/doctype/tds_control/tds_control.py b/erpnext/accounts/doctype/tds_control/tds_control.py similarity index 100% rename from accounts/doctype/tds_control/tds_control.py rename to erpnext/accounts/doctype/tds_control/tds_control.py diff --git a/accounts/doctype/tds_control/tds_control.txt b/erpnext/accounts/doctype/tds_control/tds_control.txt similarity index 100% rename from accounts/doctype/tds_control/tds_control.txt rename to erpnext/accounts/doctype/tds_control/tds_control.txt diff --git a/accounts/doctype/tds_rate_chart/__init__.py b/erpnext/accounts/doctype/tds_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_rate_chart/__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_rate_detail/__init__.py b/erpnext/accounts/doctype/tds_payment/__init__.py similarity index 100% rename from accounts/doctype/tds_rate_detail/__init__.py rename to erpnext/accounts/doctype/tds_payment/__init__.py diff --git a/accounts/doctype/tds_payment/tds_payment.js b/erpnext/accounts/doctype/tds_payment/tds_payment.js similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.js rename to erpnext/accounts/doctype/tds_payment/tds_payment.js diff --git a/accounts/doctype/tds_payment/tds_payment.py b/erpnext/accounts/doctype/tds_payment/tds_payment.py similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.py rename to erpnext/accounts/doctype/tds_payment/tds_payment.py diff --git a/accounts/doctype/tds_payment/tds_payment.txt b/erpnext/accounts/doctype/tds_payment/tds_payment.txt similarity index 100% rename from accounts/doctype/tds_payment/tds_payment.txt rename to erpnext/accounts/doctype/tds_payment/tds_payment.txt diff --git a/accounts/doctype/tds_return_acknowledgement/__init__.py b/erpnext/accounts/doctype/tds_payment_detail/__init__.py similarity index 100% rename from accounts/doctype/tds_return_acknowledgement/__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/page/__init__.py b/erpnext/accounts/doctype/tds_rate_chart/__init__.py similarity index 100% rename from accounts/page/__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/page/accounts_browser/__init__.py b/erpnext/accounts/doctype/tds_rate_detail/__init__.py similarity index 100% rename from accounts/page/accounts_browser/__init__.py rename to erpnext/accounts/doctype/tds_rate_detail/__init__.py diff --git a/accounts/doctype/tds_rate_detail/tds_rate_detail.txt b/erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt similarity index 100% rename from accounts/doctype/tds_rate_detail/tds_rate_detail.txt rename to erpnext/accounts/doctype/tds_rate_detail/tds_rate_detail.txt diff --git a/accounts/page/financial_statements/__init__.py b/erpnext/accounts/doctype/tds_return_acknowledgement/__init__.py similarity index 100% rename from accounts/page/financial_statements/__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/search_criteria/__init__.py b/erpnext/accounts/page/__init__.py similarity index 100% rename from accounts/search_criteria/__init__.py rename to erpnext/accounts/page/__init__.py diff --git a/accounts/search_criteria/accounts_payable/__init__.py b/erpnext/accounts/page/accounts_browser/__init__.py similarity index 100% rename from accounts/search_criteria/accounts_payable/__init__.py rename to erpnext/accounts/page/accounts_browser/__init__.py diff --git a/accounts/page/accounts_browser/accounts_browser.css b/erpnext/accounts/page/accounts_browser/accounts_browser.css similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.css rename to erpnext/accounts/page/accounts_browser/accounts_browser.css diff --git a/accounts/page/accounts_browser/accounts_browser.html b/erpnext/accounts/page/accounts_browser/accounts_browser.html similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.html rename to erpnext/accounts/page/accounts_browser/accounts_browser.html diff --git a/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.js rename to erpnext/accounts/page/accounts_browser/accounts_browser.js diff --git a/accounts/page/accounts_browser/accounts_browser.txt b/erpnext/accounts/page/accounts_browser/accounts_browser.txt similarity index 100% rename from accounts/page/accounts_browser/accounts_browser.txt rename to erpnext/accounts/page/accounts_browser/accounts_browser.txt diff --git a/accounts/search_criteria/accounts_receivable/__init__.py b/erpnext/accounts/page/financial_statements/__init__.py similarity index 100% rename from accounts/search_criteria/accounts_receivable/__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/bank_clearance_report/__init__.py b/erpnext/accounts/search_criteria/__init__.py similarity index 100% rename from accounts/search_criteria/bank_clearance_report/__init__.py rename to erpnext/accounts/search_criteria/__init__.py diff --git a/accounts/search_criteria/bank_reconciliation_statement/__init__.py b/erpnext/accounts/search_criteria/accounts_payable/__init__.py similarity index 100% rename from accounts/search_criteria/bank_reconciliation_statement/__init__.py rename to erpnext/accounts/search_criteria/accounts_payable/__init__.py diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.js b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.js rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.js diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.py b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py similarity index 98% rename from accounts/search_criteria/accounts_payable/accounts_payable.py rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py index 8c07b68b45..44daddcf3c 100644 --- a/accounts/search_criteria/accounts_payable/accounts_payable.py +++ b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.py @@ -90,9 +90,13 @@ for r in res: # supplier type r.append(supp_type_dict.get(r[col_idx['Account']], '')) + if r[col_idx['Voucher Type']] == 'Payable Voucher': + r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) + else: + r += ['', '', ''] + # if entry against Payable Voucher if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher': - r += pv_dict.get(r[col_idx['Voucher No']], ['', '', '']) cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']] # if entry against JV & and not adjusted within period diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.sql b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.sql rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.sql diff --git a/accounts/search_criteria/accounts_payable/accounts_payable.txt b/erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt similarity index 100% rename from accounts/search_criteria/accounts_payable/accounts_payable.txt rename to erpnext/accounts/search_criteria/accounts_payable/accounts_payable.txt diff --git a/accounts/search_criteria/budget_variance_report/__init__.py b/erpnext/accounts/search_criteria/accounts_receivable/__init__.py similarity index 100% rename from accounts/search_criteria/budget_variance_report/__init__.py rename to erpnext/accounts/search_criteria/accounts_receivable/__init__.py diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.js b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.js rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.js diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.py b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.py rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.py diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.sql b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.sql similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.sql rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.sql diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.txt b/erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt similarity index 100% rename from accounts/search_criteria/accounts_receivable/accounts_receivable.txt rename to erpnext/accounts/search_criteria/accounts_receivable/accounts_receivable.txt diff --git a/accounts/search_criteria/business_associate_commission_report/__init__.py b/erpnext/accounts/search_criteria/bank_clearance_report/__init__.py similarity index 100% rename from accounts/search_criteria/business_associate_commission_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/cash_flow_statement/__init__.py b/erpnext/accounts/search_criteria/bank_reconciliation_statement/__init__.py similarity index 100% rename from accounts/search_criteria/cash_flow_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/cenvat_credit___input_or_capital_goods/__init__.py b/erpnext/accounts/search_criteria/budget_variance_report/__init__.py similarity index 100% rename from accounts/search_criteria/cenvat_credit___input_or_capital_goods/__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/collection_report/__init__.py b/erpnext/accounts/search_criteria/business_associate_commission_report/__init__.py similarity index 100% rename from accounts/search_criteria/collection_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/cost_center_wise_expense/__init__.py b/erpnext/accounts/search_criteria/cash_flow_statement/__init__.py similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/__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/creditors_ledger/__init__.py b/erpnext/accounts/search_criteria/cenvat_credit___input_or_capital_goods/__init__.py similarity index 100% rename from accounts/search_criteria/creditors_ledger/__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/debtors_ledger/__init__.py b/erpnext/accounts/search_criteria/collection_report/__init__.py similarity index 100% rename from accounts/search_criteria/debtors_ledger/__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/general_ledger/__init__.py b/erpnext/accounts/search_criteria/cost_center_wise_expense/__init__.py similarity index 100% rename from accounts/search_criteria/general_ledger/__init__.py rename to erpnext/accounts/search_criteria/cost_center_wise_expense/__init__.py diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.js diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.py diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.sql diff --git a/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt b/erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt similarity index 100% rename from accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt rename to erpnext/accounts/search_criteria/cost_center_wise_expense/cost_center_wise_expense.txt diff --git a/accounts/search_criteria/itemwise_purchase_register/__init__.py b/erpnext/accounts/search_criteria/creditors_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/__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/itemwise_sales_register/__init__.py b/erpnext/accounts/search_criteria/debtors_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/__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/lease_agreement_list/__init__.py b/erpnext/accounts/search_criteria/general_ledger/__init__.py similarity index 100% rename from accounts/search_criteria/lease_agreement_list/__init__.py rename to erpnext/accounts/search_criteria/general_ledger/__init__.py diff --git a/accounts/search_criteria/general_ledger/general_ledger.js b/erpnext/accounts/search_criteria/general_ledger/general_ledger.js similarity index 100% rename from accounts/search_criteria/general_ledger/general_ledger.js rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.js diff --git a/accounts/search_criteria/general_ledger/general_ledger.py b/erpnext/accounts/search_criteria/general_ledger/general_ledger.py similarity index 66% rename from accounts/search_criteria/general_ledger/general_ledger.py rename to erpnext/accounts/search_criteria/general_ledger/general_ledger.py index 6cba6e44bc..8c855cfa52 100644 --- a/accounts/search_criteria/general_ledger/general_ledger.py +++ b/erpnext/accounts/search_criteria/general_ledger/general_ledger.py @@ -1,9 +1,11 @@ #get company letter head +#--------------------------------------------------------------------- l_head = sql("select content from `tabLetter Head` where ifnull(is_default, 0) = 1 and ifnull(disabled, 0) = 0") l_head = l_head and l_head[0][0] or '' + # Posting date, fiscal year and year start date -#----------------------------------------------- +#--------------------------------------------------------------------- if not filter_values.get('posting_date') or not filter_values.get('posting_date1'): msgprint("Please enter From Date and To Date") raise Exception @@ -11,11 +13,16 @@ else: from_date = filter_values['posting_date'] to_date = filter_values['posting_date1'] -from_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",from_date)[0][0] +from_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",from_date) +if not from_date_year: + msgprint("From Date is out of range. Please check.", raise_exception=1) +else: + from_date_year = from_date_year[0][0] #to_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",to_date)[0][0] + # define columns -#--------------- +#--------------------------------------------------------------------- col = [] col.append(['Date','Date','80px','']) col.append(['Detail','Text','475px','']) @@ -30,9 +37,9 @@ for c in col: col_idx[c[0]] = len(colnames) -total_debit, total_credit, total_opening, total_diff = 0,0,0,0 - #total query +#--------------------------------------------------------------------- +total_debit, total_credit, total_opening, total_diff = 0,0,0,0 q = query.split('WHERE')[1].split('LIMIT') if len(q) > 2: query_where_clause = 'LIMIT'.join(q[:-1]) @@ -47,27 +54,32 @@ for t in tot: total_diff = total_debit - total_credit -# opening -account = filter_values.get('account') -if not account: - msgprint('Select an account to proceed',raise_exception=0,small=1) - - -acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account) - -opening_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, from_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2] -closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2] -if acc_det[0][0] == 'Credit': - closing_bal = -1*closing_bal - opening_bal = -1*opening_bal - out = [] -t_row = ['' for i in range(len(colnames))] -t_row[1] = 'Opening as on '+formatdate(from_date) -t_row[col_idx['Debit']-1] = opening_bal -out.append(t_row) +# If account mentioned, show opening and closing +#--------------------------------------------------------------------- +account = filter_values.get('account') + +if account and (total_debit != 0 or total_credit != 0): + acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % account) + + opening_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, add_days(from_date, -1), acc_det[0][0], acc_det[0][2], acc_det[0][3])[2] + closing_bal = get_obj('GL Control').get_as_on_balance(account, from_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3])[2] + + if acc_det[0][0] == 'Credit': + closing_bal = -1*closing_bal + opening_bal = -1*opening_bal + + # add opening row + t_row = ['' for i in range(len(colnames))] + t_row[1] = 'Opening as on '+formatdate(from_date) + t_row[col_idx['Debit']-1] = opening_bal + out.append(t_row) + + +# table output +#--------------------------------------------------------------------- count = 0 for r in res: count +=1 @@ -79,6 +91,9 @@ for r in res: r[1] = a out.append(r) + +# Total, Difference and closing balance +#--------------------------------------------------------------------- if total_debit != 0 or total_credit != 0: # Total debit/credit t_row = ['' for i in range(len(colnames))] @@ -87,7 +102,6 @@ if total_debit != 0 or total_credit != 0: t_row[col_idx['Credit']-1] = total_credit out.append(t_row) - # diffrence (dr-cr) t_row = ['' for i in range(len(colnames))] t_row[1] = 'Total(Dr-Cr)' @@ -101,7 +115,9 @@ if total_debit != 0 or total_credit != 0: t_row[col_idx['Debit']-1] = flt(closing_bal) out.append(t_row) + # Print Format +#--------------------------------------------------------------------- myheader = """ 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/stock/doctype/batch/__init__.py b/erpnext/setup/page/people/__init__.py similarity index 100% rename from stock/doctype/batch/__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/stock/doctype/bin/__init__.py b/erpnext/setup/page/permission_engine/__init__.py similarity index 100% rename from stock/doctype/bin/__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/stock/doctype/delivery_note/__init__.py b/erpnext/setup/page/setup/__init__.py similarity index 100% rename from stock/doctype/delivery_note/__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 99% rename from setup/page/setup/setup.js rename to erpnext/setup/page/setup/setup.js index b29e7ad9e0..7c1245ad29 100644 --- a/setup/page/setup/setup.js +++ b/erpnext/setup/page/setup/setup.js @@ -172,7 +172,8 @@ SetupData = function(cnty){ ['Property Setter',1,'Property Setter','', 'Customize properties of a Form (DocType) or Field'], ['Letter Head',1,'Letter Head','','Manage different letter heads for Prints'], ['SMS Settings',3,'SMS Settings','','Integrate your personalized SMS gateway which support http web service'], - ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'] + ['SMS Center',3,'SMS Center','','Send mass sms to your leads, contacts and partners'], + ['Features Setup',3,'Features Setup','','Displays fields based on features selected'] ]}; 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/stock/doctype/delivery_note_detail/__init__.py b/erpnext/setup/page/setup_wizard/__init__.py similarity index 100% rename from stock/doctype/delivery_note_detail/__init__.py rename to erpnext/setup/page/setup_wizard/__init__.py diff --git a/setup/page/setup_wizard/setup_wizard.html b/erpnext/setup/page/setup_wizard/setup_wizard.html similarity index 100% rename from setup/page/setup_wizard/setup_wizard.html rename to erpnext/setup/page/setup_wizard/setup_wizard.html diff --git a/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js similarity index 100% rename from setup/page/setup_wizard/setup_wizard.js rename to erpnext/setup/page/setup_wizard/setup_wizard.js diff --git a/setup/page/setup_wizard/setup_wizard.txt b/erpnext/setup/page/setup_wizard/setup_wizard.txt similarity index 100% rename from setup/page/setup_wizard/setup_wizard.txt rename to erpnext/setup/page/setup_wizard/setup_wizard.txt diff --git a/setup/page/setup_wizard/setup_wizard_static.html b/erpnext/setup/page/setup_wizard/setup_wizard_static.html similarity index 100% rename from setup/page/setup_wizard/setup_wizard_static.html rename to erpnext/setup/page/setup_wizard/setup_wizard_static.html diff --git a/stock/doctype/delivery_note_packing_detail/__init__.py b/erpnext/setup/page/webforms/__init__.py similarity index 100% rename from stock/doctype/delivery_note_packing_detail/__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 0000000000..cea033b4fc --- /dev/null +++ b/erpnext/startup/__init__.py @@ -0,0 +1,7 @@ +# add startup propertes + +add_in_head = """ + +""" \ 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 67393aac08..f02841689d 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 @@ body { } .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 942f4effc5..a0661ae06f 100644 --- a/startup/startup.js +++ b/erpnext/startup/startup.js @@ -552,7 +552,7 @@ Dictionary Format } // ====================================================================*/ pscript.feature_dict = { - 'projects': { + 'fs_projects': { 'Bill Of Materials': {'fields':['project_name']}, 'Delivery Note': {'fields':['project_name']}, 'Payable Voucher': {'fields':['project_name']}, @@ -564,17 +564,17 @@ pscript.feature_dict = { 'Stock Entry': {'fields':['project_name']}, 'Timesheet': {'timesheet_details':['project_name']} }, - 'packing_details': { + 'fs_packing_details': { 'Delivery Note': {'fields':['packing_details','print_packing_slip'],'delivery_note_details':['no_of_packs','pack_gross_wt','pack_nett_wt','pack_no','pack_unit']}, 'Sales Order': {'fields':['packing_details']} }, - 'discounts': { + 'fs_discounts': { 'Delivery Note': {'delivery_note_details':['adj_rate']}, 'Quotation': {'quotation_details':['adj_rate']}, 'Receivable Voucher': {'entries':['adj_rate']}, 'Sales Order': {'sales_order_details':['adj_rate','ref_rate']} }, - 'brands': { + 'fs_brands': { 'Delivery Note': {'delivery_note_details':['brand']}, 'Indent': {'indent_details':['brand']}, 'Item': {'fields':['brand']}, @@ -586,10 +586,10 @@ pscript.feature_dict = { 'Sales Order': {'sales_order_details':['brand']}, 'Serial No': {'fields':['brand']} }, - 'after_sales_installations': { + 'fs_after_sales_installations': { 'Delivery Note': {'fields':['installation_status','per_installed'],'delivery_note_details':['installed_qty']} }, - 'item_batch_nos': { + 'fs_item_batch_nos': { 'Delivery Note': {'delivery_note_details':['batch_no']}, 'Item': {'fields':['has_batch_no']}, 'Purchase Receipt': {'purchase_receipt_details':['batch_no']}, @@ -599,7 +599,7 @@ pscript.feature_dict = { 'Stock Entry': {'mtn_details':['batch_no']}, 'Stock Ledger Entry': {'fields':['batch_no']} }, - 'item_serial_nos': { + 'fs_item_serial_nos': { 'Customer Issue': {'fields':['serial_no']}, 'Delivery Note': {'delivery_note_details':['serial_no'],'packing_details':['serial_no']}, 'Installation Note': {'installed_item_details':['serial_no']}, @@ -613,7 +613,7 @@ pscript.feature_dict = { 'Stock Entry': {'mtn_details':['serial_no']}, 'Stock Ledger Entry': {'fields':['serial_no']} }, - 'item_group_in_details': { + 'fs_item_group_in_details': { 'Delivery Note': {'delivery_note_details':['item_group']}, 'Enquiry': {'enquiry_details':['item_group']}, 'Indent': {'indent_details':['item_group']}, @@ -631,7 +631,7 @@ pscript.feature_dict = { 'Sales Person': {'target_details':['item_group']}, 'Territory': {'target_details':['item_group']} }, - 'page_break': { + 'fs_page_break': { 'Delivery Note': {'delivery_note_details':['page_break'],'packing_details':['page_break']}, 'Indent': {'indent_details':['page_break']}, 'Purchase Order': {'po_details':['page_break']}, @@ -641,7 +641,7 @@ pscript.feature_dict = { 'Receivable Voucher': {'entries':['page_break']}, 'Sales Order': {'sales_order_details':['page_break']} }, - 'exports': { + 'fs_exports': { 'Delivery Note': {'fields':['Note','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'delivery_note_details':['base_ref_rate','export_amount','export_rate']}, 'POS Setting': {'fields':['conversion_rate','currency']}, 'Quotation': {'fields':['Note HTML','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'quotation_details':['base_ref_rate','export_amount','export_rate']}, @@ -650,16 +650,16 @@ pscript.feature_dict = { 'Sales BOM': {'fields':['currency']}, 'Sales Order': {'fields':['Note1','OT Notes','conversion_rate','currency','grand_total_export','in_words_export','rounded_total_export'],'sales_order_details':['base_ref_rate','export_amount','export_rate']} }, - 'imports': { + 'fs_imports': { 'Payable Voucher': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'entries':['import_amount','import_rate']}, 'Purchase Order': {'fields':['Note HTML','conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'po_details':['import_amount','import_rate']}, 'Purchase Receipt': {'fields':['conversion_rate','currency','grand_total_import','in_words_import','net_total_import','other_charges_added_import','other_charges_deducted_import'],'purchase_receipt_details':['import_amount','import_rate']}, 'Supplier Quotation': {'fields':['conversion_rate','currency']} }, - 'item_advanced': { + 'fs_item_advanced': { 'Item': {'fields':['item_customer_details']} }, - 'sales_extras': { + 'fs_sales_extras': { 'Address': {'fields':['sales_partner']}, 'Contact': {'fields':['sales_partner']}, 'Customer': {'fields':['sales_team']}, @@ -668,7 +668,7 @@ pscript.feature_dict = { 'Receivable Voucher': {'fields':['sales_team']}, 'Sales Order': {'fields':['sales_team','Packing List']} }, - 'more_info': { + 'fs_more_info': { 'Customer': {'fields':['More Info']}, 'Delivery Note': {'fields':['More Info']}, 'Enquiry': {'fields':['More Info']}, @@ -683,14 +683,14 @@ pscript.feature_dict = { 'Serial No': {'fields':['More Info']}, 'Supplier': {'fields':['More Info']} }, - 'quality': { + 'fs_quality': { 'Item': {'fields':['Item Inspection Criteria','inspection_required']}, 'Purchase Receipt': {'purchase_receipt_details':['qa_no']} }, - 'manufacturing': { + 'fs_manufacturing': { 'Item': {'fields':['Manufacturing']} }, - 'pos': { + 'fs_pos': { 'Receivable Voucher': {'fields':['is_pos']} } } 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 e1579f93f6..69c4fe21f1 100644 --- a/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt +++ b/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2010-09-01 15:48:10', + 'creation': '2010-09-01 15:47:59', 'docstatus': 0, - 'modified': '2010-09-01 14:25:08', + 'modified': '2011-09-15 15:04:43', 'modified_by': 'Administrator', 'owner': 'harshada@webnotestech.com' }, diff --git a/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt similarity index 93% rename from stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt rename to erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt index 54e272a54f..c34f00617d 100644 --- a/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt +++ b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-05-13 12:42:57', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-10-07 12:10:26', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -31,7 +31,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Purchase Order', 'module': 'Stock', 'name': '__common__', @@ -41,7 +41,7 @@ # DocType Mapper, Purchase Order-Purchase Receipt { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Purchase Order-Purchase Receipt' }, @@ -145,6 +145,14 @@ 'to_field': 'amount' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'schedule_date', + 'match_id': 1, + 'to_field': 'schedule_date' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt similarity index 84% rename from stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt rename to erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt index 6688f2b08f..61b33ee950 100755 --- a/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt +++ b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2010-12-15 08:39:22', + 'creation': '2010-12-14 17:56:41', 'docstatus': 0, - 'modified': '2010-12-14 20:43:41', + 'modified': '2011-09-15 15:04:44', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -22,7 +22,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', 'name': '__common__', 'parent': 'Receivable Voucher-Delivery Note', 'parentfield': 'field_mapper_details', @@ -31,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Receivable Voucher', 'module': 'Stock', 'name': '__common__', @@ -41,7 +40,7 @@ # DocType Mapper, Receivable Voucher-Delivery Note { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Receivable Voucher-Delivery Note' }, @@ -49,6 +48,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: flt(obj.qty) - flt(obj.delivered_qty)', + 'map': 'Yes', 'match_id': 1, 'to_field': 'qty' }, @@ -57,6 +57,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', 'match_id': 1, 'to_field': 'prevdoc_docname' }, @@ -65,6 +66,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parenttype', + 'map': 'Yes', 'match_id': 1, 'to_field': 'prevdoc_doctype' }, @@ -73,6 +75,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', 'match_id': 1, 'to_field': 'prevdoc_detail_docname' }, @@ -81,6 +84,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)', + 'map': 'Yes', 'match_id': 1, 'to_field': 'amount' }, @@ -89,18 +93,38 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)', + 'map': 'Yes', 'match_id': 1, 'to_field': 'export_amount' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + # Field Mapper Detail { 'doctype': 'Field Mapper Detail', 'from_field': 'customer_address', + 'map': 'Yes', 'match_id': 0, 'to_field': 'delivery_address' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'serial_no', + 'map': 'Yes', + 'match_id': 1, + 'to_field': 'serial_no' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt similarity index 89% rename from stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt rename to erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt index f93fadfb58..561019b4d7 100644 --- a/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt +++ b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-05-16 11:48:19', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-14 12:36:25', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -30,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Sales Order', 'module': 'Stock', 'name': '__common__', @@ -40,7 +40,7 @@ # DocType Mapper, Sales Order-Delivery Note { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Sales Order-Delivery Note' }, @@ -174,15 +174,6 @@ 'to_field': 'warehouse' }, - # Field Mapper Detail - { - 'doctype': 'Field Mapper Detail', - 'from_field': 'allocated_amount', - 'map': 'Yes', - 'match_id': 0, - 'to_field': 'customer_mobile_no' - }, - # Field Mapper Detail { 'checking_operator': '=', @@ -203,6 +194,42 @@ 'to_field': 'customer' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'status', + 'map': 'No', + 'match_id': 0, + 'to_field': 'status' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'incentives', + 'map': 'No', + 'match_id': 3, + 'to_field': 'incentives' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'allocated_amount', + 'map': 'Yes', + 'match_id': 0, + 'to_field': 'customer_mobile_no' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/stock/Item Group/All Item Groups/All Item Groups.txt b/erpnext/stock/Item Group/All Item Groups/All Item Groups.txt similarity index 100% rename from stock/Item Group/All Item Groups/All Item Groups.txt rename to erpnext/stock/Item Group/All Item Groups/All Item Groups.txt diff --git a/stock/Item Group/Default/Default.txt b/erpnext/stock/Item Group/Default/Default.txt similarity index 100% rename from stock/Item Group/Default/Default.txt rename to erpnext/stock/Item Group/Default/Default.txt diff --git a/erpnext/stock/Module Def/Stock/Stock.txt b/erpnext/stock/Module Def/Stock/Stock.txt new file mode 100644 index 0000000000..4fc8790480 --- /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/doctype/item/__init__.py b/erpnext/stock/__init__.py similarity index 100% rename from stock/doctype/item/__init__.py rename to erpnext/stock/__init__.py diff --git a/stock/doctype/item_customer_detail/__init__.py b/erpnext/stock/doctype/__init__.py similarity index 100% rename from stock/doctype/item_customer_detail/__init__.py rename to erpnext/stock/doctype/__init__.py diff --git a/stock/doctype/item_specification_detail/__init__.py b/erpnext/stock/doctype/batch/__init__.py similarity index 100% rename from stock/doctype/item_specification_detail/__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/item_tax/__init__.py b/erpnext/stock/doctype/bin/__init__.py similarity index 100% rename from stock/doctype/item_tax/__init__.py rename to erpnext/stock/doctype/bin/__init__.py diff --git a/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py similarity index 99% rename from stock/doctype/bin/bin.py rename to erpnext/stock/doctype/bin/bin.py index 65b86867b6..cf9509a332 100644 --- a/stock/doctype/bin/bin.py +++ b/erpnext/stock/doctype/bin/bin.py @@ -42,7 +42,8 @@ class DocType: # update valuation for post dated entry if actual_qty: # check actual qty with total number of serial no - self.check_qty_with_serial_no() + if serial_no: + self.check_qty_with_serial_no() prev_sle = self.get_prev_sle(dt, posting_time, sle_id) cqty = flt(prev_sle.get('bin_aqat', 0)) diff --git a/stock/doctype/bin/bin.txt b/erpnext/stock/doctype/bin/bin.txt similarity index 100% rename from stock/doctype/bin/bin.txt rename to erpnext/stock/doctype/bin/bin.txt diff --git a/stock/doctype/landed_cost_detail/__init__.py b/erpnext/stock/doctype/delivery_note/__init__.py similarity index 100% rename from stock/doctype/landed_cost_detail/__init__.py rename to erpnext/stock/doctype/delivery_note/__init__.py diff --git a/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js similarity index 100% rename from stock/doctype/delivery_note/delivery_note.js rename to erpnext/stock/doctype/delivery_note/delivery_note.js diff --git a/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py similarity index 99% rename from stock/doctype/delivery_note/delivery_note.py rename to erpnext/stock/doctype/delivery_note/delivery_note.py index e5acd163a7..6d48914429 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -443,8 +443,8 @@ class DocType(TransactionBase): # ========================================== def update_pack_nett_weight(self): for d in getlist(self.doclist, 'delivery_note_details'): - if d.item_name: - item_wt = sql("select nett_weight from `tabItem` where item_name = '%s'" % (d.item_name)) + if d.item_code: + item_wt = sql("select nett_weight from `tabItem` where name = %s", (d.item_code)) d.pack_nett_wt = item_wt and flt(item_wt[0][0])*flt(d.qty) or 0 # ========================================== diff --git a/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt similarity index 94% rename from stock/doctype/delivery_note/delivery_note.txt rename to erpnext/stock/doctype/delivery_note/delivery_note.txt index 1ab19e070c..a3897ec17b 100644 --- a/stock/doctype/delivery_note/delivery_note.txt +++ b/erpnext/stock/doctype/delivery_note/delivery_note.txt @@ -5,7 +5,7 @@ { 'creation': '2011-04-18 15:58:20', 'docstatus': 0, - 'modified': '2011-08-23 15:26:57', + 'modified': '2011-09-07 17:36:34', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,8 +21,9 @@ # These values are common for all DocType { - '_last_update': '1313665263', + '_last_update': '1314093417', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'document_type': 'Transaction', 'in_create': 0, @@ -36,7 +37,7 @@ 'show_in_menu': 0, 'subject': 'To %(customer_name)s on %(transaction_date)s | %(per_billed)s% billed', 'tag_fields': 'billing_status', - 'version': 449 + 'version': 450 }, # These values are common for all DocFormat @@ -71,7 +72,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'Material User', 'submit': 1, @@ -84,7 +84,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 0, 'role': 'Sales User', 'submit': 1, @@ -97,7 +96,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'Material Master Manager', 'submit': 1, @@ -110,7 +108,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 0, 'role': 'Material Manager', 'submit': 1, @@ -120,7 +117,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 1, 'role': 'All' }, @@ -128,21 +124,18 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 2, 'role': 'All' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 1 + 'doctype': 'DocFormat' }, # DocFormat { - 'doctype': 'DocFormat', - 'idx': 2 + 'doctype': 'DocFormat' }, # DocField @@ -150,7 +143,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Basic Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -160,7 +152,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 2, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'trigger': 'Client', @@ -174,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'naming_series', 'fieldtype': 'Select', - 'idx': 3, 'label': 'Series', 'no_copy': 1, 'oldfieldname': 'naming_series', @@ -190,7 +180,6 @@ 'doctype': 'DocField', 'fieldname': 'customer', 'fieldtype': 'Link', - 'idx': 4, 'in_filter': 1, 'label': 'Customer', 'oldfieldname': 'customer', @@ -208,7 +197,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_address', 'fieldtype': 'Link', - 'idx': 5, 'in_filter': 1, 'label': 'Shipping Address', 'options': 'Address', @@ -221,7 +209,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_person', 'fieldtype': 'Link', - 'idx': 6, 'in_filter': 1, 'label': 'Contact Person', 'options': 'Contact', @@ -234,7 +221,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_name', 'fieldtype': 'Data', - 'idx': 7, 'label': 'Customer Name', 'permlevel': 1 }, @@ -244,7 +230,6 @@ 'doctype': 'DocField', 'fieldname': 'address_display', 'fieldtype': 'Small Text', - 'idx': 8, 'label': 'Shipping Address', 'permlevel': 1 }, @@ -254,7 +239,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_display', 'fieldtype': 'Small Text', - 'idx': 9, 'label': 'Contact', 'permlevel': 1 }, @@ -264,7 +248,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_mobile', 'fieldtype': 'Text', - 'idx': 10, 'label': 'Mobile No', 'permlevel': 1 }, @@ -274,7 +257,6 @@ 'doctype': 'DocField', 'fieldname': 'contact_email', 'fieldtype': 'Text', - 'idx': 11, 'label': 'Contact Email', 'permlevel': 1, 'print_hide': 1 @@ -284,7 +266,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 12, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -297,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'transaction_date', 'fieldtype': 'Date', - 'idx': 13, 'in_filter': 1, 'label': 'Voucher Date', 'no_copy': 1, @@ -316,7 +296,6 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 14, 'in_filter': 1, 'label': 'Status', 'no_copy': 1, @@ -338,7 +317,6 @@ 'doctype': 'DocField', 'fieldname': 'per_billed', 'fieldtype': 'Currency', - 'idx': 15, 'in_filter': 1, 'label': '% Amount Billed', 'no_copy': 1, @@ -357,7 +335,6 @@ 'doctype': 'DocField', 'fieldname': 'per_installed', 'fieldtype': 'Currency', - 'idx': 16, 'in_filter': 1, 'label': '% Installed', 'no_copy': 1, @@ -368,13 +345,42 @@ 'search_index': 1 }, + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_no', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. No', + 'no_copy': 0, + 'oldfieldname': 'po_no', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'po_date', + 'fieldtype': 'Data', + 'hidden': 1, + 'label': 'P.O. Date', + 'no_copy': 0, + 'oldfieldname': 'po_date', + 'oldfieldtype': 'Data', + 'permlevel': 1, + 'print_hide': 1, + 'width': '100px' + }, + # DocField { 'allow_on_submit': 0, 'doctype': 'DocField', 'fieldname': 'amended_from', 'fieldtype': 'Data', - 'idx': 17, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -390,7 +396,6 @@ 'doctype': 'DocField', 'fieldname': 'amendment_date', 'fieldtype': 'Date', - 'idx': 18, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -406,7 +411,6 @@ 'fieldname': 'territory', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 19, 'in_filter': 1, 'label': 'Territory', 'options': 'Territory', @@ -421,7 +425,6 @@ 'doctype': 'DocField', 'fieldname': 'customer_group', 'fieldtype': 'Link', - 'idx': 20, 'in_filter': 1, 'label': 'Customer Group', 'options': 'Customer Group', @@ -434,7 +437,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 21, 'label': 'Transporter Info', 'permlevel': 0 }, @@ -445,7 +447,6 @@ 'doctype': 'DocField', 'fieldname': 'transporter_name', 'fieldtype': 'Data', - 'idx': 22, 'label': 'Transporter Name', 'no_copy': 0, 'oldfieldname': 'transporter_name', @@ -464,7 +465,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_no', 'fieldtype': 'Data', - 'idx': 23, 'label': 'LR No', 'no_copy': 0, 'oldfieldname': 'lr_no', @@ -483,7 +483,6 @@ 'doctype': 'DocField', 'fieldname': 'lr_date', 'fieldtype': 'Date', - 'idx': 24, 'label': 'LR Date', 'no_copy': 0, 'oldfieldname': 'lr_date', @@ -497,7 +496,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 25, 'permlevel': 0, 'width': '50%' }, @@ -507,7 +505,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_no', 'fieldtype': 'Data', - 'idx': 26, 'label': 'Challan No', 'oldfieldname': 'challan_no', 'oldfieldtype': 'Data', @@ -519,7 +516,6 @@ 'doctype': 'DocField', 'fieldname': 'challan_date', 'fieldtype': 'Date', - 'idx': 27, 'label': 'Challan Date', 'oldfieldname': 'challan_date', 'oldfieldtype': 'Date', @@ -531,7 +527,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 28, 'label': 'Items', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -544,7 +539,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_order_no', 'fieldtype': 'Link', - 'idx': 29, 'label': 'Sales Order No', 'no_copy': 0, 'oldfieldname': 'sales_order_no', @@ -559,7 +553,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 0, - 'idx': 30, 'label': 'Get Items', 'oldfieldtype': 'Button', 'options': 'pull_sales_order_details', @@ -574,7 +567,6 @@ 'doctype': 'DocField', 'fieldname': 'price_list_name', 'fieldtype': 'Select', - 'idx': 31, 'label': 'Price List', 'oldfieldname': 'price_list_name', 'oldfieldtype': 'Select', @@ -589,7 +581,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 32, 'permlevel': 0, 'width': '50%' }, @@ -601,7 +592,6 @@ 'doctype': 'DocField', 'fieldname': 'currency', 'fieldtype': 'Select', - 'idx': 33, 'label': 'Currency', 'oldfieldname': 'currency', 'oldfieldtype': 'Select', @@ -619,7 +609,6 @@ 'doctype': 'DocField', 'fieldname': 'conversion_rate', 'fieldtype': 'Currency', - 'idx': 34, 'label': 'Conversion Rate', 'no_copy': 0, 'oldfieldname': 'conversion_rate', @@ -633,7 +622,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 35, 'permlevel': 0 }, @@ -642,7 +630,6 @@ 'doctype': 'DocField', 'fieldname': 'delivery_note_details', 'fieldtype': 'Table', - 'idx': 36, 'label': 'Delivery Note Details', 'no_copy': 0, 'oldfieldname': 'delivery_note_details', @@ -657,7 +644,6 @@ 'doctype': 'DocField', 'fieldname': 'net_total', 'fieldtype': 'Currency', - 'idx': 37, 'label': 'Net Total*', 'no_copy': 0, 'oldfieldname': 'net_total', @@ -672,7 +658,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 38, 'label': 'Re-Calculate Values', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -683,7 +668,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 39, 'label': 'Note', 'oldfieldtype': 'HTML', 'options': 'NOTE :* In Base Currency', @@ -696,7 +680,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 40, 'label': 'Taxes', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -709,7 +692,6 @@ 'doctype': 'DocField', 'fieldname': 'charge', 'fieldtype': 'Link', - 'idx': 41, 'label': 'Charge', 'oldfieldname': 'charge', 'oldfieldtype': 'Link', @@ -722,7 +704,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 42, 'label': 'Get Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -735,7 +716,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges', 'fieldtype': 'Table', - 'idx': 43, 'label': 'Other Charges', 'no_copy': 0, 'oldfieldname': 'other_charges', @@ -749,7 +729,6 @@ 'doctype': 'DocField', 'fieldname': 'other_charges_total', 'fieldtype': 'Currency', - 'idx': 44, 'label': 'Charges Total', 'oldfieldname': 'other_charges_total', 'oldfieldtype': 'Currency', @@ -762,7 +741,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 45, 'label': 'Calculate Charges', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -774,7 +752,6 @@ { 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 46, 'label': 'Other Charges Calculation', 'oldfieldtype': 'HTML', 'permlevel': 0 @@ -785,7 +762,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 47, 'label': 'Totals', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -797,7 +773,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total', 'fieldtype': 'Currency', - 'idx': 48, 'label': 'Grand Total', 'no_copy': 0, 'oldfieldname': 'grand_total', @@ -813,7 +788,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total', 'fieldtype': 'Currency', - 'idx': 49, 'label': 'Rounded Total', 'no_copy': 0, 'oldfieldname': 'rounded_total', @@ -830,7 +804,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words', 'fieldtype': 'Data', - 'idx': 50, 'label': 'In Words', 'no_copy': 0, 'oldfieldname': 'in_words', @@ -844,7 +817,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 51, 'oldfieldtype': 'Column Break', 'permlevel': 0 }, @@ -854,7 +826,6 @@ 'doctype': 'DocField', 'fieldname': 'grand_total_export', 'fieldtype': 'Currency', - 'idx': 52, 'label': 'Grand Total (Export)', 'no_copy': 0, 'oldfieldname': 'grand_total_export', @@ -870,7 +841,6 @@ 'doctype': 'DocField', 'fieldname': 'rounded_total_export', 'fieldtype': 'Currency', - 'idx': 53, 'label': 'Rounded Total (Export)', 'no_copy': 0, 'oldfieldname': 'rounded_total_export', @@ -887,7 +857,6 @@ 'doctype': 'DocField', 'fieldname': 'in_words_export', 'fieldtype': 'Data', - 'idx': 54, 'label': 'In Words (Export)', 'no_copy': 0, 'oldfieldname': 'in_words_export', @@ -901,7 +870,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 55, 'label': 'Terms', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -912,7 +880,6 @@ 'doctype': 'DocField', 'fieldname': 'tc_name', 'fieldtype': 'Link', - 'idx': 56, 'label': 'Select Terms', 'oldfieldname': 'tc_name', 'oldfieldtype': 'Link', @@ -926,7 +893,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 57, 'label': 'Get Terms', 'oldfieldtype': 'Button', 'options': 'get_tc_details', @@ -939,7 +905,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'HTML', - 'idx': 58, 'label': 'Terms HTML', 'oldfieldtype': 'HTML', 'options': 'You can add Terms and Notes that will be printed in the Transaction', @@ -953,7 +918,6 @@ 'doctype': 'DocField', 'fieldname': 'terms', 'fieldtype': 'Text Editor', - 'idx': 59, 'label': 'Term Details', 'oldfieldname': 'terms', 'oldfieldtype': 'Text Editor', @@ -966,7 +930,6 @@ 'description': 'Filling in Additional Information about the Delivery Note will help you analyze your data better.', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 60, 'label': 'More Info', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -979,7 +942,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Link', - 'idx': 61, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -997,7 +959,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 62, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -1018,7 +979,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_date', 'fieldtype': 'Date', - 'idx': 63, 'in_filter': 1, 'label': 'Posting Date', 'no_copy': 1, @@ -1038,7 +998,6 @@ 'doctype': 'DocField', 'fieldname': 'posting_time', 'fieldtype': 'Time', - 'idx': 64, 'in_filter': 0, 'label': 'Posting Time', 'oldfieldname': 'posting_time', @@ -1057,7 +1016,6 @@ 'doctype': 'DocField', 'fieldname': 'project_name', 'fieldtype': 'Link', - 'idx': 65, 'in_filter': 1, 'label': 'Project Name', 'oldfieldname': 'project_name', @@ -1076,7 +1034,6 @@ 'fieldname': 'to_warehouse', 'fieldtype': 'Link', 'hidden': 0, - 'idx': 66, 'label': 'To Warehouse', 'no_copy': 1, 'oldfieldname': 'to_warehouse', @@ -1090,7 +1047,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 67, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -1102,7 +1058,6 @@ 'fieldname': 'billing_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 68, 'label': 'Billing Status', 'no_copy': 1, 'options': '\nNot Billed\nPartly Billed\nFully Billed', @@ -1116,51 +1071,17 @@ 'fieldname': 'installation_status', 'fieldtype': 'Select', 'hidden': 1, - 'idx': 69, 'label': 'Installation Status', 'permlevel': 0, 'print_hide': 1 }, - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_no', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 70, - 'label': 'P.O. No', - 'no_copy': 0, - 'oldfieldname': 'po_no', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - - # DocField - { - 'doctype': 'DocField', - 'fieldname': 'po_date', - 'fieldtype': 'Data', - 'hidden': 1, - 'idx': 71, - 'label': 'P.O. Date', - 'no_copy': 0, - 'oldfieldname': 'po_date', - 'oldfieldtype': 'Data', - 'permlevel': 1, - 'print_hide': 1, - 'width': '100px' - }, - # DocField { 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldname': 'letter_head', 'fieldtype': 'Select', - 'idx': 72, 'label': 'Letter Head', 'oldfieldname': 'letter_head', 'oldfieldtype': 'Link', @@ -1174,7 +1095,6 @@ 'doctype': 'DocField', 'fieldname': 'source', 'fieldtype': 'Select', - 'idx': 73, 'label': 'Source', 'oldfieldname': 'source', 'oldfieldtype': 'Select', @@ -1190,7 +1110,6 @@ 'doctype': 'DocField', 'fieldname': 'campaign', 'fieldtype': 'Link', - 'idx': 74, 'label': 'Campaign', 'oldfieldname': 'campaign', 'oldfieldtype': 'Link', @@ -1206,7 +1125,6 @@ 'doctype': 'DocField', 'fieldname': 'select_print_heading', 'fieldtype': 'Link', - 'idx': 75, 'label': 'Select Print Heading', 'no_copy': 1, 'oldfieldname': 'select_print_heading', @@ -1224,7 +1142,6 @@ 'doctype': 'DocField', 'fieldname': 'print_without_amount', 'fieldtype': 'Check', - 'idx': 76, 'label': 'Print Without Amount', 'oldfieldname': 'print_without_amount', 'oldfieldtype': 'Check', @@ -1238,7 +1155,6 @@ 'doctype': 'DocField', 'fieldname': 'instructions', 'fieldtype': 'Text', - 'idx': 77, 'label': 'Instructions', 'oldfieldname': 'instructions', 'oldfieldtype': 'Text', @@ -1253,7 +1169,6 @@ 'fieldname': 'cancel_reason', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 78, 'label': 'Cancel Reason', 'no_copy': 1, 'oldfieldname': 'cancel_reason', @@ -1269,7 +1184,6 @@ 'fieldname': 'excise_page', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 79, 'label': 'Excise Page Number', 'oldfieldname': 'excise_page', 'oldfieldtype': 'Data', @@ -1282,7 +1196,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 80, 'label': 'Sales Team', 'oldfieldtype': 'Section Break', 'permlevel': 0, @@ -1293,7 +1206,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 81, 'permlevel': 0, 'width': '50%' }, @@ -1303,7 +1215,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_partner', 'fieldtype': 'Link', - 'idx': 82, 'label': 'Sales Partner', 'no_copy': 0, 'oldfieldname': 'sales_partner', @@ -1320,7 +1231,6 @@ 'doctype': 'DocField', 'fieldname': 'commission_rate', 'fieldtype': 'Currency', - 'idx': 83, 'label': 'Commission Rate (%)', 'no_copy': 0, 'oldfieldname': 'commission_rate', @@ -1337,7 +1247,6 @@ 'doctype': 'DocField', 'fieldname': 'total_commission', 'fieldtype': 'Currency', - 'idx': 84, 'label': 'Total Commission', 'no_copy': 0, 'oldfieldname': 'total_commission', @@ -1351,7 +1260,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 85, 'permlevel': 0, 'width': '50%' }, @@ -1361,7 +1269,6 @@ 'doctype': 'DocField', 'fieldname': 'sales_team', 'fieldtype': 'Table', - 'idx': 86, 'label': 'Sales Team1', 'oldfieldname': 'sales_team', 'oldfieldtype': 'Table', @@ -1375,7 +1282,6 @@ 'doctype': 'DocField', 'fieldtype': 'Section Break', 'hidden': 1, - 'idx': 87, 'label': 'Supplier Details', 'oldfieldtype': 'Section Break', 'options': 'Simple', @@ -1388,7 +1294,6 @@ 'fieldname': 'supplier', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 88, 'label': 'Supplier', 'oldfieldname': 'supplier', 'oldfieldtype': 'Link', @@ -1403,7 +1308,6 @@ 'fieldname': 'supplier_address', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 89, 'label': 'Supplier Address', 'oldfieldname': 'supplier_address', 'oldfieldtype': 'Text', @@ -1418,7 +1322,6 @@ 'fieldname': 'purchase_receipt_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 90, 'label': 'Purchase Receipt No', 'no_copy': 1, 'oldfieldname': 'purchase_receipt_no', @@ -1435,7 +1338,6 @@ 'fieldname': 'purchase_order_no', 'fieldtype': 'Link', 'hidden': 1, - 'idx': 91, 'label': 'Purchase Order', 'no_copy': 1, 'oldfieldname': 'purchase_order_no', @@ -1449,7 +1351,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 92, 'label': 'Packing List', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -1460,7 +1361,6 @@ 'doctype': 'DocField', 'fieldname': 'packing_details', 'fieldtype': 'Table', - 'idx': 93, 'label': 'Packing Details', 'oldfieldname': 'packing_details', 'oldfieldtype': 'Table', @@ -1474,7 +1374,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 94, 'label': 'Repair Delivery Note', 'oldfieldtype': 'Button', 'options': 'repair_delivery_note', @@ -1488,7 +1387,6 @@ 'fieldname': 'print_packing_slip', 'fieldtype': 'Text', 'hidden': 1, - 'idx': 95, 'in_filter': 0, 'label': 'Print Packing Slip', 'permlevel': 0, diff --git a/stock/doctype/landed_cost_master/__init__.py b/erpnext/stock/doctype/delivery_note_detail/__init__.py similarity index 100% rename from stock/doctype/landed_cost_master/__init__.py rename to erpnext/stock/doctype/delivery_note_detail/__init__.py diff --git a/stock/doctype/delivery_note_detail/delivery_note_detail.txt b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt similarity index 94% rename from stock/doctype/delivery_note_detail/delivery_note_detail.txt rename to erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt index a8fea209c4..be7b98f771 100644 --- a/stock/doctype/delivery_note_detail/delivery_note_detail.txt +++ b/erpnext/stock/doctype/delivery_note_detail/delivery_note_detail.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:08:58', 'docstatus': 0, - 'modified': '2011-08-22 12:11:51', + 'modified': '2011-09-07 17:34:13', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,7 +21,7 @@ 'section_style': 'Tray', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 38 + 'version': 40 }, # These values are common for all DocField @@ -44,7 +44,6 @@ 'doctype': 'DocField', 'fieldname': 'item_code', 'fieldtype': 'Link', - 'idx': 1, 'in_filter': 1, 'label': 'Item Code', 'oldfieldname': 'item_code', @@ -63,7 +62,6 @@ 'doctype': 'DocField', 'fieldname': 'item_name', 'fieldtype': 'Data', - 'idx': 2, 'label': 'Item Name', 'oldfieldname': 'item_name', 'oldfieldtype': 'Data', @@ -78,7 +76,6 @@ 'doctype': 'DocField', 'fieldname': 'description', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Description', 'oldfieldname': 'description', 'oldfieldtype': 'Small Text', @@ -87,12 +84,26 @@ 'width': '300px' }, + # DocField + { + 'default': '0.00', + 'doctype': 'DocField', + 'fieldname': 'qty', + 'fieldtype': 'Currency', + 'label': 'Quantity', + 'oldfieldname': 'qty', + 'oldfieldtype': 'Currency', + 'permlevel': 0, + 'reqd': 1, + 'trigger': 'Client', + 'width': '100px' + }, + # DocField { 'doctype': 'DocField', 'fieldname': 'stock_uom', 'fieldtype': 'Data', - 'idx': 4, 'label': 'UOM', 'oldfieldname': 'stock_uom', 'oldfieldtype': 'Data', @@ -102,29 +113,12 @@ 'width': '50px' }, - # DocField - { - 'default': '0.00', - 'doctype': 'DocField', - 'fieldname': 'qty', - 'fieldtype': 'Currency', - 'idx': 5, - 'label': 'Quantity', - 'oldfieldname': 'qty', - 'oldfieldtype': 'Currency', - 'permlevel': 0, - 'reqd': 1, - 'trigger': 'Client', - 'width': '100px' - }, - # DocField { 'default': '0.00', 'doctype': 'DocField', 'fieldname': 'ref_rate', 'fieldtype': 'Currency', - 'idx': 6, 'label': 'Ref Rate', 'no_copy': 0, 'oldfieldname': 'ref_rate', @@ -142,7 +136,6 @@ 'doctype': 'DocField', 'fieldname': 'adj_rate', 'fieldtype': 'Float', - 'idx': 7, 'label': 'Discount (%)', 'oldfieldname': 'adj_rate', 'oldfieldtype': 'Float', @@ -157,7 +150,6 @@ 'doctype': 'DocField', 'fieldname': 'export_rate', 'fieldtype': 'Currency', - 'idx': 8, 'label': 'Rate', 'oldfieldname': 'export_rate', 'oldfieldtype': 'Currency', @@ -173,7 +165,6 @@ 'doctype': 'DocField', 'fieldname': 'export_amount', 'fieldtype': 'Currency', - 'idx': 9, 'label': 'Amount', 'oldfieldname': 'export_amount', 'oldfieldtype': 'Currency', @@ -188,7 +179,6 @@ 'doctype': 'DocField', 'fieldname': 'base_ref_rate', 'fieldtype': 'Currency', - 'idx': 10, 'label': 'Ref Rate*', 'oldfieldname': 'base_ref_rate', 'oldfieldtype': 'Currency', @@ -203,7 +193,6 @@ 'doctype': 'DocField', 'fieldname': 'basic_rate', 'fieldtype': 'Currency', - 'idx': 11, 'label': 'Rate*', 'oldfieldname': 'basic_rate', 'oldfieldtype': 'Currency', @@ -219,7 +208,6 @@ 'doctype': 'DocField', 'fieldname': 'amount', 'fieldtype': 'Currency', - 'idx': 12, 'label': 'Amount*', 'oldfieldname': 'amount', 'oldfieldtype': 'Currency', @@ -234,7 +222,6 @@ 'doctype': 'DocField', 'fieldname': 'warehouse', 'fieldtype': 'Link', - 'idx': 13, 'label': 'Warehouse', 'oldfieldname': 'warehouse', 'oldfieldtype': 'Link', @@ -250,7 +237,6 @@ 'doctype': 'DocField', 'fieldname': 'serial_no', 'fieldtype': 'Text', - 'idx': 14, 'in_filter': 1, 'label': 'Serial No', 'no_copy': 1, @@ -266,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'batch_no', 'fieldtype': 'Link', - 'idx': 15, 'label': 'Batch No', 'oldfieldname': 'batch_no', 'oldfieldtype': 'Link', @@ -280,7 +265,6 @@ 'doctype': 'DocField', 'fieldname': 'item_group', 'fieldtype': 'Link', - 'idx': 16, 'label': 'Item Group', 'oldfieldname': 'item_group', 'oldfieldtype': 'Link', @@ -294,7 +278,6 @@ 'doctype': 'DocField', 'fieldname': 'brand', 'fieldtype': 'Link', - 'idx': 17, 'label': 'Brand Name', 'oldfieldname': 'brand', 'oldfieldtype': 'Link', @@ -309,9 +292,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_no', 'fieldtype': 'Data', - 'idx': 18, 'label': 'Pack No', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -319,9 +302,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_gross_wt', 'fieldtype': 'Float', - 'idx': 19, 'label': 'Pack Gross Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -329,10 +312,10 @@ 'doctype': 'DocField', 'fieldname': 'weight_uom', 'fieldtype': 'Link', - 'idx': 20, 'label': 'Weight UOM', 'options': 'UOM', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -340,9 +323,9 @@ 'doctype': 'DocField', 'fieldname': 'pack_nett_wt', 'fieldtype': 'Float', - 'idx': 21, 'label': 'Pack Nett Wt', - 'permlevel': 0 + 'permlevel': 0, + 'print_hide': 1 }, # DocField @@ -350,7 +333,6 @@ 'doctype': 'DocField', 'fieldname': 'no_of_packs', 'fieldtype': 'Int', - 'idx': 22, 'label': 'No of Packs', 'oldfieldname': 'no_of_packs', 'oldfieldtype': 'Int', @@ -364,7 +346,6 @@ 'doctype': 'DocField', 'fieldname': 'pack_unit', 'fieldtype': 'Data', - 'idx': 23, 'label': 'Pack Unit', 'oldfieldname': 'pack_unit', 'oldfieldtype': 'Data', @@ -378,7 +359,6 @@ 'doctype': 'DocField', 'fieldname': 'installed_qty', 'fieldtype': 'Currency', - 'idx': 24, 'label': 'Installed Qty', 'no_copy': 1, 'oldfieldname': 'installed_qty', @@ -393,7 +373,6 @@ 'doctype': 'DocField', 'fieldname': 'actual_qty', 'fieldtype': 'Currency', - 'idx': 25, 'label': 'Available Qty at Warehouse', 'no_copy': 1, 'oldfieldname': 'actual_qty', @@ -408,7 +387,6 @@ 'doctype': 'DocField', 'fieldname': 'billed_amt', 'fieldtype': 'Currency', - 'idx': 26, 'label': 'Billed Amt', 'no_copy': 1, 'permlevel': 1, @@ -423,7 +401,6 @@ 'fieldname': 'prevdoc_docname', 'fieldtype': 'Data', 'hidden': 0, - 'idx': 27, 'in_filter': 1, 'label': 'Against Document No', 'no_copy': 1, @@ -441,7 +418,6 @@ 'fieldname': 'prevdoc_doctype', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 28, 'in_filter': 1, 'label': 'Document Type', 'oldfieldname': 'prevdoc_doctype', @@ -458,7 +434,6 @@ 'fieldname': 'prevdoc_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 29, 'in_filter': 1, 'label': 'Against Document Date', 'oldfieldname': 'prevdoc_date', @@ -473,7 +448,6 @@ 'fieldname': 'prevdoc_detail_docname', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 30, 'in_filter': 1, 'label': 'Against Document Detail No', 'oldfieldname': 'prevdoc_detail_docname', @@ -490,7 +464,6 @@ 'fieldname': 'item_tax_rate', 'fieldtype': 'Small Text', 'hidden': 1, - 'idx': 31, 'label': 'Item Tax Rate', 'oldfieldname': 'item_tax_rate', 'oldfieldtype': 'Small Text', @@ -504,7 +477,6 @@ 'doctype': 'DocField', 'fieldname': 'page_break', 'fieldtype': 'Check', - 'idx': 32, 'label': 'Page Break', 'oldfieldname': 'page_break', 'oldfieldtype': 'Check', diff --git a/stock/doctype/landed_cost_master_detail/__init__.py b/erpnext/stock/doctype/delivery_note_packing_detail/__init__.py similarity index 100% rename from stock/doctype/landed_cost_master_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/landed_cost_wizard/__init__.py b/erpnext/stock/doctype/item/__init__.py similarity index 100% rename from stock/doctype/landed_cost_wizard/__init__.py rename to erpnext/stock/doctype/item/__init__.py diff --git a/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js similarity index 100% rename from stock/doctype/item/item.js rename to erpnext/stock/doctype/item/item.js diff --git a/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py similarity index 100% rename from stock/doctype/item/item.py rename to erpnext/stock/doctype/item/item.py diff --git a/stock/doctype/item/item.txt b/erpnext/stock/doctype/item/item.txt similarity index 100% rename from stock/doctype/item/item.txt rename to erpnext/stock/doctype/item/item.txt diff --git a/stock/doctype/lc_pr_detail/__init__.py b/erpnext/stock/doctype/item_customer_detail/__init__.py similarity index 100% rename from stock/doctype/lc_pr_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/purchase_receipt/__init__.py b/erpnext/stock/doctype/item_specification_detail/__init__.py similarity index 100% rename from stock/doctype/purchase_receipt/__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/purchase_receipt_detail/__init__.py b/erpnext/stock/doctype/item_tax/__init__.py similarity index 100% rename from stock/doctype/purchase_receipt_detail/__init__.py rename to erpnext/stock/doctype/item_tax/__init__.py diff --git a/stock/doctype/item_tax/item_tax.txt b/erpnext/stock/doctype/item_tax/item_tax.txt similarity index 100% rename from stock/doctype/item_tax/item_tax.txt rename to erpnext/stock/doctype/item_tax/item_tax.txt diff --git a/stock/doctype/ref_rate_detail/__init__.py b/erpnext/stock/doctype/landed_cost_detail/__init__.py similarity index 100% rename from stock/doctype/ref_rate_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/sales_and_purchase_return_wizard/__init__.py b/erpnext/stock/doctype/landed_cost_master/__init__.py similarity index 100% rename from stock/doctype/sales_and_purchase_return_wizard/__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/sales_bom/__init__.py b/erpnext/stock/doctype/landed_cost_master_detail/__init__.py similarity index 100% rename from stock/doctype/sales_bom/__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/sales_bom_detail/__init__.py b/erpnext/stock/doctype/landed_cost_wizard/__init__.py similarity index 100% rename from stock/doctype/sales_bom_detail/__init__.py rename to erpnext/stock/doctype/landed_cost_wizard/__init__.py diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.js b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.js similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.js rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.js diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.py rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.py diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt b/erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt similarity index 100% rename from stock/doctype/landed_cost_wizard/landed_cost_wizard.txt rename to erpnext/stock/doctype/landed_cost_wizard/landed_cost_wizard.txt diff --git a/stock/doctype/serial_no/__init__.py b/erpnext/stock/doctype/lc_pr_detail/__init__.py similarity index 100% rename from stock/doctype/serial_no/__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/stock_entry/__init__.py b/erpnext/stock/doctype/purchase_receipt/__init__.py similarity index 100% rename from stock/doctype/stock_entry/__init__.py rename to erpnext/stock/doctype/purchase_receipt/__init__.py diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js similarity index 97% rename from stock/doctype/purchase_receipt/purchase_receipt.js rename to erpnext/stock/doctype/purchase_receipt/purchase_receipt.js index e060e3c564..f6f4984c84 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.js +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js @@ -82,10 +82,10 @@ cur_frm.fields_dict.contact_person.on_new = function(dn) { // ----------------- cur_frm.cscript['Pull Purchase Order Details'] = function(doc, dt, dn) { var callback = function(r,rt) { - unhide_field(['supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email']); - refresh_many(['supplier','supplier_address','contact_person','supplier_name','address_display','contact_display','contact_mobile','contact_email','purchase_receipt_details']); + unhide_field(['supplier_address','contact_person','supplier_name','address_display', 'contact_display', 'contact_mobile','contact_email']); + refresh_many(['supplier','supplier_address','contact_person', 'supplier_name', 'address_display', 'contact_display','contact_mobile', 'contact_email', 'purchase_receipt_details', 'purchase_tax_details']); } - get_server_fields('get_po_details','','',doc, dt, dn,1,callback); + $c_obj(make_doclist(dt,dn),'get_po_details','',callback); } 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/stock_entry_detail/__init__.py b/erpnext/stock/doctype/purchase_receipt_detail/__init__.py similarity index 100% rename from stock/doctype/stock_entry_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/stock_ledger/__init__.py b/erpnext/stock/doctype/ref_rate_detail/__init__.py similarity index 100% rename from stock/doctype/stock_ledger/__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/stock_ledger_entry/__init__.py b/erpnext/stock/doctype/sales_and_purchase_return_wizard/__init__.py similarity index 100% rename from stock/doctype/stock_ledger_entry/__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/stock_reconciliation/__init__.py b/erpnext/stock/doctype/sales_bom/__init__.py similarity index 100% rename from stock/doctype/stock_reconciliation/__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/stock_uom_replace_utility/__init__.py b/erpnext/stock/doctype/sales_bom_detail/__init__.py similarity index 100% rename from stock/doctype/stock_uom_replace_utility/__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/uom_conversion_detail/__init__.py b/erpnext/stock/doctype/serial_no/__init__.py similarity index 100% rename from stock/doctype/uom_conversion_detail/__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 9aa6119ffc..277a2ecc7d 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/valuation_control/__init__.py b/erpnext/stock/doctype/stock_entry/__init__.py similarity index 100% rename from stock/doctype/valuation_control/__init__.py rename to erpnext/stock/doctype/stock_entry/__init__.py diff --git a/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js similarity index 100% rename from stock/doctype/stock_entry/stock_entry.js rename to erpnext/stock/doctype/stock_entry/stock_entry.js diff --git a/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py similarity index 100% rename from stock/doctype/stock_entry/stock_entry.py rename to erpnext/stock/doctype/stock_entry/stock_entry.py diff --git a/stock/doctype/stock_entry/stock_entry.py~ b/erpnext/stock/doctype/stock_entry/stock_entry.py~ similarity index 100% rename from stock/doctype/stock_entry/stock_entry.py~ rename to erpnext/stock/doctype/stock_entry/stock_entry.py~ diff --git a/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt similarity index 100% rename from stock/doctype/stock_entry/stock_entry.txt rename to erpnext/stock/doctype/stock_entry/stock_entry.txt diff --git a/stock/doctype/warehouse/__init__.py b/erpnext/stock/doctype/stock_entry_detail/__init__.py similarity index 100% rename from stock/doctype/warehouse/__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/page/__init__.py b/erpnext/stock/doctype/stock_ledger/__init__.py similarity index 100% rename from stock/page/__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 92% rename from stock/doctype/stock_ledger/stock_ledger.py rename to erpnext/stock/doctype/stock_ledger/stock_ledger.py index dca975402c..5165cc9dbc 100644 --- a/stock/doctype/stock_ledger/stock_ledger.py +++ b/erpnext/stock/doctype/stock_ledger/stock_ledger.py @@ -51,7 +51,8 @@ class DocType: # ----------------------------- def validate_serial_no_warehouse(self, obj, fname): for d in getlist(obj.doclist, fname): - if d.serial_no: + wh = d.warehouse or d.s_warehouse + if d.serial_no and wh: serial_nos = self.get_sr_no_list(d.serial_no) for s in serial_nos: s = s.strip() @@ -60,8 +61,8 @@ class DocType: msgprint("Serial No %s does not exists"%s, raise_exception = 1) elif not sr_war[0][0]: msgprint("Warehouse not mentioned in the Serial No %s" % s, raise_exception = 1) - elif (d.warehouse and sr_war[0][0] != d.warehouse) or (d.s_warehouse and sr_war[0][0] != d.s_warehouse): - msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, d.warehouse or d.s_warehouse), raise_exception = 1) + elif sr_war[0][0] != wh: + msgprint("Serial No : %s for Item : %s doesn't exists in Warehouse : %s" % (s, d.item_code, wh), raise_exception = 1) # ------------------------------------ @@ -133,10 +134,12 @@ class DocType: else: if exists and exists[0][1] == 'Delivered' and exists[0][2] != 2: msgprint("Serial No: %s is already delivered, you can not cancel the document." % serial_no, raise_exception=1) - elif purpose in ['Material Transfer', 'Sales Return']: - sql("update `tabSerial No` set status = '%s', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (purpose == 'Material Transfer' and 'In Store' or 'Delivered', d.s_warehouse, serial_no)) + elif purpose == 'Material Transfer': + sql("update `tabSerial No` set status = 'In Store', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (d.s_warehouse, serial_no)) + elif purpose == 'Sales Return': + sql("update `tabSerial No` set status = 'Delivered', purchase_document_type = '', purchase_document_no = '' where name = '%s'" % serial_no) else: - sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = '', purchase_rate = '', supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no) + sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = null, purchase_rate = 0, supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no) # ------------------------------- @@ -182,7 +185,7 @@ class DocType: self.check_serial_no_exists(serial_no, d.item_code) self.set_delivery_serial_no_values(obj, serial_no) else: - sql("update `tabSerial No` set docstatus = 0, status = 'In Store', delivery_document_type = '', delivery_document_no = '', delivery_date = '', customer = null, customer_name = '', delivery_address = '', territory = null where name = '%s'" % (serial_no)) + sql("update `tabSerial No` set docstatus = 0, status = 'In Store', delivery_document_type = '', delivery_document_no = '', delivery_date = null, customer = null, customer_name = '', delivery_address = '', territory = null where name = '%s'" % (serial_no)) # --------------------- 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/search_criteria/__init__.py b/erpnext/stock/doctype/stock_ledger_entry/__init__.py similarity index 100% rename from stock/search_criteria/__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/search_criteria/itemwise_price_list/__init__.py b/erpnext/stock/doctype/stock_reconciliation/__init__.py similarity index 100% rename from stock/search_criteria/itemwise_price_list/__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/search_criteria/shortage_to_indent/__init__.py b/erpnext/stock/doctype/stock_uom_replace_utility/__init__.py similarity index 100% rename from stock/search_criteria/shortage_to_indent/__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/search_criteria/stock_aging_report/__init__.py b/erpnext/stock/doctype/uom_conversion_detail/__init__.py similarity index 100% rename from stock/search_criteria/stock_aging_report/__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/search_criteria/stock_ledger/__init__.py b/erpnext/stock/doctype/valuation_control/__init__.py similarity index 100% rename from stock/search_criteria/stock_ledger/__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/search_criteria/stock_level/__init__.py b/erpnext/stock/doctype/warehouse/__init__.py similarity index 100% rename from stock/search_criteria/stock_level/__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 1363eef701..da29dfab64 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/search_criteria/stock_report/__init__.py b/erpnext/stock/page/__init__.py similarity index 100% rename from stock/search_criteria/stock_report/__init__.py rename to erpnext/stock/page/__init__.py diff --git a/support/__init__.py b/erpnext/stock/search_criteria/__init__.py similarity index 100% rename from support/__init__.py rename to erpnext/stock/search_criteria/__init__.py diff --git a/support/doctype/__init__.py b/erpnext/stock/search_criteria/itemwise_price_list/__init__.py similarity index 100% rename from support/doctype/__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/support/doctype/customer_issue/__init__.py b/erpnext/stock/search_criteria/shortage_to_indent/__init__.py similarity index 100% rename from support/doctype/customer_issue/__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/support/doctype/item_maintenance_detail/__init__.py b/erpnext/stock/search_criteria/stock_aging_report/__init__.py similarity index 100% rename from support/doctype/item_maintenance_detail/__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/support/doctype/maintenance_schedule/__init__.py b/erpnext/stock/search_criteria/stock_ledger/__init__.py similarity index 100% rename from support/doctype/maintenance_schedule/__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/support/doctype/maintenance_schedule_detail/__init__.py b/erpnext/stock/search_criteria/stock_level/__init__.py similarity index 100% rename from support/doctype/maintenance_schedule_detail/__init__.py rename to erpnext/stock/search_criteria/stock_level/__init__.py diff --git a/stock/search_criteria/stock_level/stock_level.js b/erpnext/stock/search_criteria/stock_level/stock_level.js similarity index 100% rename from stock/search_criteria/stock_level/stock_level.js rename to erpnext/stock/search_criteria/stock_level/stock_level.js diff --git a/stock/search_criteria/stock_level/stock_level.py b/erpnext/stock/search_criteria/stock_level/stock_level.py similarity index 100% rename from stock/search_criteria/stock_level/stock_level.py rename to erpnext/stock/search_criteria/stock_level/stock_level.py diff --git a/stock/search_criteria/stock_level/stock_level.txt b/erpnext/stock/search_criteria/stock_level/stock_level.txt similarity index 100% rename from stock/search_criteria/stock_level/stock_level.txt rename to erpnext/stock/search_criteria/stock_level/stock_level.txt diff --git a/support/doctype/maintenance_visit/__init__.py b/erpnext/stock/search_criteria/stock_report/__init__.py similarity index 100% rename from support/doctype/maintenance_visit/__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 75244dea9d..55060ea75f 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 e56c4bdf97..ccd0e60c9b 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 26a48f8a67..e4bd45bd17 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 0000000000..9c66c3d1c3 --- /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/doctype/maintenance_visit_detail/__init__.py b/erpnext/support/__init__.py similarity index 100% rename from support/doctype/maintenance_visit_detail/__init__.py rename to erpnext/support/__init__.py diff --git a/support/doctype/support_ticket_response/__init__.py b/erpnext/support/doctype/__init__.py similarity index 100% rename from support/doctype/support_ticket_response/__init__.py rename to erpnext/support/doctype/__init__.py diff --git a/support/search_criteria/__init__.py b/erpnext/support/doctype/customer_issue/__init__.py similarity index 100% rename from support/search_criteria/__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/search_criteria/amc_summary/__init__.py b/erpnext/support/doctype/item_maintenance_detail/__init__.py similarity index 100% rename from support/search_criteria/amc_summary/__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/search_criteria/customer_issues/__init__.py b/erpnext/support/doctype/maintenance_schedule/__init__.py similarity index 100% rename from support/search_criteria/customer_issues/__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/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py b/erpnext/support/doctype/maintenance_schedule_detail/__init__.py similarity index 100% rename from support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__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/search_criteria/maintenance_schedule_details/__init__.py b/erpnext/support/doctype/maintenance_visit/__init__.py similarity index 100% rename from support/search_criteria/maintenance_schedule_details/__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/search_criteria/warranty_amc_expiry_details/__init__.py b/erpnext/support/doctype/maintenance_visit_detail/__init__.py similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/__init__.py rename to erpnext/support/doctype/maintenance_visit_detail/__init__.py diff --git a/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt b/erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt similarity index 100% rename from support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt rename to erpnext/support/doctype/maintenance_visit_detail/maintenance_visit_detail.txt diff --git a/support/doctype/support_ticket/__init__.py b/erpnext/support/doctype/support_ticket/__init__.py similarity index 100% rename from support/doctype/support_ticket/__init__.py rename to erpnext/support/doctype/support_ticket/__init__.py diff --git a/support/doctype/support_ticket/support_ticket.js b/erpnext/support/doctype/support_ticket/support_ticket.js similarity index 100% rename from support/doctype/support_ticket/support_ticket.js rename to erpnext/support/doctype/support_ticket/support_ticket.js diff --git a/support/doctype/support_ticket/support_ticket.py b/erpnext/support/doctype/support_ticket/support_ticket.py similarity index 100% rename from support/doctype/support_ticket/support_ticket.py rename to erpnext/support/doctype/support_ticket/support_ticket.py diff --git a/support/doctype/support_ticket/support_ticket.txt b/erpnext/support/doctype/support_ticket/support_ticket.txt similarity index 100% rename from support/doctype/support_ticket/support_ticket.txt rename to erpnext/support/doctype/support_ticket/support_ticket.txt diff --git a/support/search_criteria/warranty_amc_summary/__init__.py b/erpnext/support/doctype/support_ticket_response/__init__.py similarity index 100% rename from support/search_criteria/warranty_amc_summary/__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/utilities/__init__.py b/erpnext/support/search_criteria/__init__.py similarity index 100% rename from utilities/__init__.py rename to erpnext/support/search_criteria/__init__.py diff --git a/utilities/doctype/__init__.py b/erpnext/support/search_criteria/amc_summary/__init__.py similarity index 100% rename from utilities/doctype/__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/utilities/doctype/activity_dashboard_control/__init__.py b/erpnext/support/search_criteria/customer_issues/__init__.py similarity index 100% rename from utilities/doctype/activity_dashboard_control/__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/utilities/doctype/address/__init__.py b/erpnext/support/search_criteria/maintenance_orderwise_pending_amount_to_bill/__init__.py similarity index 100% rename from utilities/doctype/address/__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/utilities/doctype/bulk_rename_tool/__init__.py b/erpnext/support/search_criteria/maintenance_schedule_details/__init__.py similarity index 100% rename from utilities/doctype/bulk_rename_tool/__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/utilities/doctype/contact/__init__.py b/erpnext/support/search_criteria/warranty_amc_expiry_details/__init__.py similarity index 100% rename from utilities/doctype/contact/__init__.py rename to erpnext/support/search_criteria/warranty_amc_expiry_details/__init__.py diff --git a/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js rename to erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.js diff --git a/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt b/erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt similarity index 100% rename from support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt rename to erpnext/support/search_criteria/warranty_amc_expiry_details/warranty_amc_expiry_details.txt diff --git a/utilities/doctype/contact_detail/__init__.py b/erpnext/support/search_criteria/warranty_amc_summary/__init__.py similarity index 100% rename from utilities/doctype/contact_detail/__init__.py rename to erpnext/support/search_criteria/warranty_amc_summary/__init__.py diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.js rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.js diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.py rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.sql diff --git a/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt similarity index 100% rename from support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt rename to erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.txt diff --git a/utilities/Module Def/Utilities/Utilities.txt b/erpnext/utilities/Module Def/Utilities/Utilities.txt similarity index 100% rename from utilities/Module Def/Utilities/Utilities.txt rename to erpnext/utilities/Module Def/Utilities/Utilities.txt diff --git a/utilities/doctype/doctype_label/__init__.py b/erpnext/utilities/__init__.py similarity index 100% rename from utilities/doctype/doctype_label/__init__.py rename to erpnext/utilities/__init__.py diff --git a/utilities/doctype/doctype_property_setter/__init__.py b/erpnext/utilities/doctype/__init__.py similarity index 100% rename from utilities/doctype/doctype_property_setter/__init__.py rename to erpnext/utilities/doctype/__init__.py diff --git a/utilities/doctype/file_browser_control/__init__.py b/erpnext/utilities/doctype/activity_dashboard_control/__init__.py similarity index 100% rename from utilities/doctype/file_browser_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/gl_mapper/__init__.py b/erpnext/utilities/doctype/address/__init__.py similarity index 100% rename from utilities/doctype/gl_mapper/__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/gl_mapper_detail/__init__.py b/erpnext/utilities/doctype/bulk_rename_tool/__init__.py similarity index 100% rename from utilities/doctype/gl_mapper_detail/__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/menu_control/__init__.py b/erpnext/utilities/doctype/contact/__init__.py similarity index 100% rename from utilities/doctype/menu_control/__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/patch_util/__init__.py b/erpnext/utilities/doctype/contact_detail/__init__.py similarity index 100% rename from utilities/doctype/patch_util/__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/production_tips_common/__init__.py b/erpnext/utilities/doctype/doctype_label/__init__.py similarity index 100% rename from utilities/doctype/production_tips_common/__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/profile_control/__init__.py b/erpnext/utilities/doctype/doctype_property_setter/__init__.py similarity index 100% rename from utilities/doctype/profile_control/__init__.py rename to erpnext/utilities/doctype/doctype_property_setter/__init__.py diff --git a/utilities/doctype/doctype_property_setter/doctype_property_setter.py b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py similarity index 100% rename from utilities/doctype/doctype_property_setter/doctype_property_setter.py rename to erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py diff --git a/utilities/doctype/doctype_property_setter/doctype_property_setter.txt b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt similarity index 100% rename from utilities/doctype/doctype_property_setter/doctype_property_setter.txt rename to erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt diff --git a/utilities/doctype/receiver_detail/__init__.py b/erpnext/utilities/doctype/file_browser_control/__init__.py similarity index 100% rename from utilities/doctype/receiver_detail/__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/rename_tool/__init__.py b/erpnext/utilities/doctype/gl_mapper/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from utilities/doctype/rename_tool/__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/reposting_tool/__init__.py b/erpnext/utilities/doctype/gl_mapper_detail/__init__.py similarity index 100% rename from utilities/doctype/reposting_tool/__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/sms_center/__init__.py b/erpnext/utilities/doctype/menu_control/__init__.py similarity index 100% rename from utilities/doctype/sms_center/__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/sms_control/__init__.py b/erpnext/utilities/doctype/patch_util/__init__.py similarity index 100% rename from utilities/doctype/sms_control/__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/sms_log/__init__.py b/erpnext/utilities/doctype/production_tips_common/__init__.py similarity index 100% rename from utilities/doctype/sms_log/__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/sso_control/__init__.py b/erpnext/utilities/doctype/profile_control/__init__.py similarity index 100% rename from utilities/doctype/sso_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/todo_item/__init__.py b/erpnext/utilities/doctype/receiver_detail/__init__.py similarity index 100% rename from utilities/doctype/todo_item/__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/trash_control/__init__.py b/erpnext/utilities/doctype/rename_tool/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from utilities/doctype/trash_control/__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/wn_erp_client_control/__init__.py b/erpnext/utilities/doctype/reposting_tool/__init__.py similarity index 100% rename from utilities/doctype/wn_erp_client_control/__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/page/__init__.py b/erpnext/utilities/doctype/sms_center/__init__.py similarity index 100% rename from utilities/page/__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/page/file_browser/__init__.py b/erpnext/utilities/doctype/sms_control/__init__.py similarity index 100% rename from utilities/page/file_browser/__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/page/messages/__init__.py b/erpnext/utilities/doctype/sms_log/__init__.py similarity index 100% rename from utilities/page/messages/__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/page/trash/__init__.py b/erpnext/utilities/doctype/sso_control/__init__.py similarity index 100% rename from utilities/page/trash/__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/page/wip_monitor/__init__.py b/erpnext/utilities/doctype/todo_item/__init__.py similarity index 100% rename from utilities/page/wip_monitor/__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/erpnext/utilities/doctype/trash_control/__init__.py b/erpnext/utilities/doctype/trash_control/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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/erpnext/utilities/doctype/wn_erp_client_control/__init__.py b/erpnext/utilities/doctype/wn_erp_client_control/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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/erpnext/utilities/page/__init__.py b/erpnext/utilities/page/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/utilities/page/file_browser/__init__.py b/erpnext/utilities/page/file_browser/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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/erpnext/utilities/page/messages/__init__.py b/erpnext/utilities/page/messages/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 258961d50c..43b4bd7edc 100644 --- a/utilities/page/messages/messages.js +++ b/erpnext/utilities/page/messages/messages.js @@ -529,6 +529,8 @@ MessageThread.prototype.add_autosuggest = function() { // ---- 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/erpnext/utilities/page/trash/__init__.py b/erpnext/utilities/page/trash/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/utilities/page/trash/trash.html b/erpnext/utilities/page/trash/trash.html similarity index 100% rename from utilities/page/trash/trash.html rename to erpnext/utilities/page/trash/trash.html diff --git a/utilities/page/trash/trash.js b/erpnext/utilities/page/trash/trash.js similarity index 100% rename from utilities/page/trash/trash.js rename to erpnext/utilities/page/trash/trash.js diff --git a/utilities/page/trash/trash.txt b/erpnext/utilities/page/trash/trash.txt similarity index 100% rename from utilities/page/trash/trash.txt rename to erpnext/utilities/page/trash/trash.txt diff --git a/erpnext/utilities/page/wip_monitor/__init__.py b/erpnext/utilities/page/wip_monitor/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 8b2106b847..794eaaf00a 100644 Binary files a/favicon.ico and b/favicon.ico differ diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js deleted file mode 100644 index ed53141957..0000000000 --- a/hr/doctype/appraisal/appraisal.js +++ /dev/null @@ -1,145 +0,0 @@ -cur_frm.add_fetch('employee', 'company', 'company'); - -cur_frm.cscript.onload = function(doc,cdt,cdn){ - if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); - if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn); - if(doc.amended_from && doc.__islocal) cur_frm.cscript.refresh_appraisal_details(doc, cdt, cdn); -} - -cur_frm.cscript.refresh = function(doc,cdt,cdn){ - if(user == doc.kra_approver && doc.status == 'Submitted') unhide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - else hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - - if(!doc.docstatus) unhide_field('Fetch Template'); - else hide_field('Fetch Template'); -} - - -cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){ - var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); - for(var i = 0; iYou wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?'], - ['HTML', 'Response', '
'], - ['HTML', 'Declare Completed', '
'] - ]); - - var declare_completed_btn1 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); - declare_completed_btn1.innerHTML = 'Yes'; - declare_completed_btn1.onclick = function(){ declare_completed_dialog.add(); } - - var declare_completed_btn2 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); - declare_completed_btn2.innerHTML = 'No'; - $y(declare_completed_btn2,{marginLeft:'4px'}); - declare_completed_btn2.onclick = function(){ declare_completed_dialog.hide();} - - declare_completed_dialog.onshow = function() { - $i('declare_completed_dialog_response').innerHTML = ''; - } - - declare_completed_dialog.refresh_dt = function(){ - cur_frm.cscript.refresh(this.doc, this.cdt, this.cdn); - msgprint("refersh done"); - $c('webnotes.widgets.form.form_header.refresh_labels',this.doc,function(r,rt){}); - } - - declare_completed_dialog.add = function() { - // sending... - $i('declare_completed_dialog_response').innerHTML = 'Processing...'; - var m_arg = user+ '~~' + this.msg_nm_lst; - - $c_obj(make_doclist(this.doc.doctype, this.doc.name),'declare_completed','', function(r,rt){ - - if(r.message.status == 'Completed'){ - $i('declare_completed_dialog_response').innerHTML = 'Done'; - refresh_field('status'); - declare_completed_dialog.refresh_dt(); - hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); - declare_completed_dialog.hide(); - } - else if(r.message.status == 'Incomplete'){ - $i('declare_completed_dialog_response').innerHTML = 'Incomplete Appraisal'; - } - else if(r.message.status == 'No Score'){ - $i('declare_completed_dialog_response').innerHTML = 'Calculate total score'; - } - }); - } - } - - if(!declare_completed_dialog){ - set_declare_completed_dialog(); - } - declare_completed_dialog.doc = doc; - declare_completed_dialog.cdt = cdt; - declare_completed_dialog.cdn = cdn; - declare_completed_dialog.show(); -} - -cur_frm.cscript.score = function(doc,cdt,cdn){ - var d = locals[cdt][cdn]; - if (d.score){ - total = flt(d.per_weightage*d.score)/100; - d.score_earned = total.toPrecision(2); - refresh_field('score_earned', d.name, 'appraisal_details'); - } - else{ - d.score_earned = ''; - refresh_field('score_earned', d.name, 'appraisal_details'); - } - cur_frm.cscript.calculate_total(doc,cdt,cdn); -} - -cur_frm.cscript.calculate_total = function(doc,cdt,cdn){ - var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); - var total =0; - for(var i = 0; i getdate(self.doc.end_date): - msgprint("End Date can not be less than Start Date") - raise Exception - - def validate_existing_appraisal(self): - chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date)) - if chk: - msgprint("You have already created Appraisal "+cstr(chk[0][0])+" in the current date range for employee "+cstr(self.doc.employee_name)) - raise Exception - - def validate_curr_appraisal(self): - for d in getlist(self.doclist, 'appraisal_details'): - if d.target_achieved or d.score: - if self.doc.status == 'Draft': - msgprint("Target achieved or Score can be added only for submitted Appraisal") - raise Exception - elif self.doc.status == 'Submitted' and session['user'] != self.doc.kra_approver: - msgprint("Target achieved or Score can be added only by Appraisal Approver") - raise Exception - - def validate_fiscal_year(self): - fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year) - ysd=fy and fy[0][0] or "" - yed=add_days(str(ysd),365) - if str(self.doc.start_date) < str(ysd) or str(self.doc.start_date) > str(yed) or str(self.doc.end_date) < str(ysd) or str(self.doc.end_date) > str(yed): - msgprint("Appraisal date range is not within the Fiscal Year selected") - raise Exception - - def validate(self): - self.validate_dates() - self.validate_existing_appraisal() - self.validate_curr_appraisal() - self.validate_fiscal_year() - - def set_approver(self): - ret={} - approver_lst =[] - emp_nm = self.get_employee_name() - approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self) - if approver_lst1: - approver_lst=approver_lst1 - else: - approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")] - ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)} - return ret - - def calculate_total(self): - total = 0 - for d in getlist(self.doclist, 'appraisal_details'): - if d.score: - total = total + flt(d.score_earned) - ret={'total_score':flt(total)} - return ret - - def declare_completed(self): - ret={} - for d in getlist(self.doclist, 'appraisal_details'): - if not d.target_achieved or not d.score or not d.score_earned: - msgprint("Please add 'Target Achieved' and 'Score' for all KPI") - ret = {'status':'Incomplete'} - return ret - - if not self.doc.total_score: - msgprint("Please calculate total score using button 'Calculate Total Score'") - ret = {'status':'No Score'} - return ret - self.update_appraisal() - #set(self.doc, 'status', 'Completed') - ret = {'status':'Completed'} - return ret - - def update_appraisal(self): - for d in getlist(self.doclist, 'appraisal_details'): - if not d.kra or not d.per_weightage: - msgprint("Please remove the extra blank row added") - raise Exception - d.save() - if self.doc.total_score: - set(self.doc,'total_score',self.doc.total_score) - - def on_update(self): - set(self.doc, 'status', 'Draft') - - def validate_total_weightage(self): - total_w = 0 - for d in getlist(self.doclist, 'appraisal_details'): - total_w = flt(total_w) + flt(d.per_weightage) - - if flt(total_w)>100 or flt(total_w)<100: - msgprint("Total of weightage assigned to KPI is "+cstr(total_w)+".It should be 100(%)") - raise Exception - - def validate_appraisal_detail(self): - if not self.doc.kra_approver: - msgprint("Please mention the name of Approver") - raise Exception - - if not getlist(self.doclist, 'appraisal_details'): - msgprint("Please add KRA Details") - raise Exception - - self.validate_total_weightage() - - def on_submit(self): - self.validate_appraisal_detail() - set(self.doc, 'status', 'Submitted') - - def on_cancel(self): - set(self.doc, 'status', 'Cancelled') \ No newline at end of file diff --git a/module-icons.png b/images/module-icons.png similarity index 100% rename from module-icons.png rename to images/module-icons.png diff --git a/index.cgi b/index.cgi new file mode 100755 index 0000000000..3d61c56052 --- /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 0000000000..64eef0f666 --- /dev/null +++ b/index.html @@ -0,0 +1,82 @@ + + + + ERPNext + + + + +
+ + +
+ + +
+ +
+
+ +
+ \ No newline at end of file diff --git a/js/app.js b/js/app.js new file mode 100644 index 0000000000..aeb10a189d --- /dev/null +++ b/js/app.js @@ -0,0 +1,21 @@ +wn.settings.no_history = true; + +wn.require('lib/js/lib/jquery.min.js'); +wn.require('lib/js/legacy/tiny_mce_33/jquery.tinymce.js'); +wn.require('lib/js/wn/ui/status_bar.js'); + +wn.sb = new wn.ui.StatusBar(); +wn.sb.set_value(15); +// for datepicker +wn.require('lib/js/legacy/jquery/jquery-ui.min.js') +wn.sb.set_value(25); + +wn.require('lib/js/legacy/wnf.compressed.js'); +wn.sb.set_value(40); + +wn.require('lib/css/legacy/default.css'); +wn.sb.set_value(70); + +$(document).bind('ready', function() { + startup(); +}); \ No newline at end of file diff --git a/patches/delivery_billing_status_patch.py b/patches/delivery_billing_status_patch.py deleted file mode 100644 index 2f9501398c..0000000000 --- a/patches/delivery_billing_status_patch.py +++ /dev/null @@ -1,43 +0,0 @@ -import webnotes -sql = webnotes.conn.sql - -# update SO -#--------------- -def update_percent(): - so = sql("select name from `tabSales Order` where docstatus = 1") - for d in so: - sql(""" - update - `tabSales Order` - set - per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent='%s'), - per_billed = (select sum(if(qty > ifnull(billed_qty, 0), billed_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent='%s') - where - name='%s'""" % (d[0], d[0], d[0])) - - # update DN - # --------- - dn = sql("select name from `tabDelivery Note` where docstatus = 1") - for d in dn: - sql(""" - update - `tabDelivery Note` - set - per_billed = (select sum(if(qty > ifnull(billed_qty, 0), billed_qty, qty))/sum(qty)*100 from `tabDelivery Note Detail` where parent='%s') - where - name='%s'""" % (d[0], d[0])) - - -# update delivery/billing status -#------------------------------- -def update_status(): - sql("""update `tabSales Order` set delivery_status = if(ifnull(per_delivered,0) < 0.001, 'Not Delivered', - if(per_delivered >= 99.99, 'Fully Delivered', 'Partly Delivered'))""") - sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', - if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") - sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', - if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") - -def run_patch(): - update_percent() - update_status() diff --git a/setup/doctype/authorization_control/authorization_control.py b/setup/doctype/authorization_control/authorization_control.py deleted file mode 100644 index 4036ecf594..0000000000 --- a/setup/doctype/authorization_control/authorization_control.py +++ /dev/null @@ -1,196 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model import db_exists -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes.model.doclist import getlist, copy_doclist -from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax -from webnotes import session, form, is_testing, msgprint, errprint - -set = webnotes.conn.set -sql = webnotes.conn.sql -get_value = webnotes.conn.get_value -in_transaction = webnotes.conn.in_transaction -convert_to_lists = webnotes.conn.convert_to_lists - -# ----------------------------------------------------------------------------------------- -from utilities.transaction_base import TransactionBase - -class DocType(TransactionBase): - def __init__(self, d, dl): - self.doc, self.doclist = d, dl - - - # Get Names of all Approving Users and Roles - # ------------------------------------------- - def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): - amt_list, appr_users, appr_roles = [], [], [] - users, roles = '','' - if det: - for x in det: - amt_list.append(flt(x[0])) - max_amount = max(amt_list) - - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and company = '%s' %s" % (doctype_name, flt(max_amount), total, based_on, company, condition)) - if not app_dtl: - app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = '%s' and (value = '%s' or value > '%s') and docstatus != 2 and based_on = '%s' and ifnull(company,'') = '' %s" % (doctype_name, flt(max_amount), total, based_on, condition)) - for d in app_dtl: - if(d[0]): appr_users.append(d[0]) - if(d[1]): appr_roles.append(d[1]) - - if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']): - msg, add_msg = '','' - if max_amount: - dcc = TransactionBase().get_company_currency(self.doc.company) - if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) - elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) - elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') - - if appr_users: add_msg = "Users : "+cstr(appr_users) - if appr_roles: add_msg = "Roles : "+cstr(appr_roles) - if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) - msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) - raise Exception - - - # Check if authorization rule is set specific to user - # ---------------------------------------------------- - def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): - chk = 1 - add_cond1,add_cond2 = '','' - if based_on == 'Itemwise Discount': - add_cond1 += " and master_name = '"+cstr(item)+"'" - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond1)) - if not itemwise_exists: - itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond1)) - if itemwise_exists: - self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) - chk = 0 - if chk == 1: - if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and company = '%s' and docstatus != 2 %s %s" % (doctype_name, total, based_on, company, cond, add_cond2)) - if not appr: - appr = sql("select value from `tabAuthorization Rule` where transaction = '%s' and value <= '%s' and based_on = '%s' and ifnull(company,'') = '' and docstatus != 2 %s %s" % (doctype_name, total, based_on, cond, add_cond2)) - self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) - - - # Bifurcate Authorization based on type - # -------------------------------------- - def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): - add_cond = '' - auth_value = av_dis - if val == 1: add_cond += " and system_user = '"+session['user']+"'" - elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") - else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" - if based_on == 'Grand Total': auth_value = total - elif based_on == 'Customerwise Discount': - if doc_obj: - if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer - else: customer = doc_obj.doc.customer_name - add_cond = " and master_name = '"+cstr(customer)+"'" - if based_on == 'Itemwise Discount': - if doc_obj: - for t in getlist(doc_obj.doclist, doc_obj.fname): - self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) - else: - self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) - - - # Check Approving Authority for transactions other than expense voucher and Appraisal - # ------------------------- - def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): - if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' - elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' - av_dis = 0 - if doc_obj: - ref_rate, basic_rate = 0, 0 - for d in getlist(doc_obj.doclist, doc_obj.fname): - if d.base_ref_rate and d.basic_rate: - ref_rate += flt(d.base_ref_rate) - basic_rate += flt(d.basic_rate) - if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) - - final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] - # Individual User - # ================ - # Check for authorization set for individual user - - based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = '%s' and system_user = '%s' and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, session['user'], company))] - - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) - - # Remove user specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Specific Role - # =============== - # Check for authorization set on particular roles - #based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and docstatus != 2" %(doctype_name, "('"+"','".join(session['data']['profile']['roles'])+"')", "('"+"','".join(final_based_on)+"')"))] - based_on = [x[0] for x in sql("select based_on from `tabAuthorization Rule` where transaction = '%s' and system_role IN %s and based_on IN %s and (company = '%s' or ifnull(company,'')='') and docstatus != 2" %(doctype_name, "('"+"','".join(webnotes.user.get_roles())+"')", "('"+"','".join(final_based_on)+"')",company))] - for d in based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) - - # Remove role specific rules from global authorization rules - for r in based_on: - if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) - - # Global Rule - # ============= - # Check for global authorization - for g in final_based_on: - self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) - - #======================================================================================================================== - # payroll related check - def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): - val_lst =[] - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) - if not val: - val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount)) - - - if val: - val_lst = [y[0] for y in val] - else: - val_lst.append(0) - - max_val = max(val_lst) - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) - - return rule - - #--------------------------------------------------------------------------------------------------------------------- - # related to payroll module only - def get_approver_name(self, doctype_name, total, doc_obj=''): - app_user=[] - app_specific_user =[] - rule ={} - - if doc_obj: - if doctype_name == 'Expense Voucher': - rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) - elif doctype_name == 'Appraisal': - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) - if not rule: - rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) - - if rule: - for m in rule: - if m['to_emp'] or m['to_designation']: - if m['approving_user']: - app_specific_user.append(m['approving_user']) - elif m['approving_role']: - user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] - for x in user_lst: - if not x in app_user: - app_user.append(x) - - if len(app_specific_user) >0: - return app_specific_user - else: - return app_user diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py deleted file mode 100644 index 783a158588..0000000000 --- a/setup/doctype/company/company.py +++ /dev/null @@ -1,251 +0,0 @@ -# Please edit this list and import only required elements -import webnotes - -from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add -from webnotes.model import db_exists -from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType -from webnotes.model.doclist import getlist, copy_doclist -from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax -from webnotes import session, form, is_testing, msgprint, errprint - -set = webnotes.conn.set -sql = webnotes.conn.sql -get_value = webnotes.conn.get_value -in_transaction = webnotes.conn.in_transaction -convert_to_lists = webnotes.conn.convert_to_lists - -# ----------------------------------------------------------------------------------------- - - -class DocType: - def __init__(self,d,dl): - self.doc, self.doclist = d,dl - - # Create default accounts - # --------------------------------------------------- - def create_default_accounts(self): - self.fld_dict = {'account_name':0,'parent_account':1,'group_or_ledger':2,'is_pl_account':3,'account_type':4,'debit_or_credit':5,'company':6,'tax_rate':7} - acc_list_common = [['Application of Funds (Assets)','','Group','No','','Debit',self.doc.name,''], - ['Current Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Accounts Receivable','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Bank Accounts','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], - ['Cash In Hand','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''], - ['Cash','Cash In Hand','Ledger','No','Bank or Cash','Debit',self.doc.name,''], - ['Loans and Advances (Assets)','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Securities and Deposits','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''], - ['Stock In Hand','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Stock','Stock In Hand','Ledger','No','','Debit',self.doc.name,''], - ['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''], - ['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Computers','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Furniture and Fixture','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Office Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Plant and Machinery','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''], - ['Investments','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Temporary Accounts (Assets)','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''], - ['Temporary Account (Assets)','Temporary Accounts (Assets)','Ledger','No','','Debit',self.doc.name,''], - ['Source of Funds (Liabilities)','','Group','No','','Credit',self.doc.name,''], - ['Capital Account','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Reserves and Surplus','Capital Account','Group','No','','Credit',self.doc.name,''], - ['Shareholders Funds','Capital Account','Group','No','','Credit',self.doc.name,''], - ['Current Liabilities','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Accounts Payable','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Duties and Taxes','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Loans (Liabilities)','Current Liabilities','Group','No','','Credit',self.doc.name,''], - ['Secured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Unsecured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Bank Overdraft Account','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Temporary Accounts (Liabilities)','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''], - ['Temporary Account (Liabilities)','Temporary Accounts (Liabilities)','Ledger','No','','Credit',self.doc.name,''], - ['Income','','Group','Yes','','Credit',self.doc.name,''], - ['Direct Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], - ['Sales','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], - ['Service','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''], - ['Indirect Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''], - ['Expenses','','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Direct Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Cost of Goods Sold','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Indirect Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''], - ['Advertising and Publicity','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Bad Debts Written Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Bank Charges','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Books and Periodicals','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Charity and Donations','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Commission on Sales','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Conveyance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Customer Entertainment Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Depreciation Account','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Freight and Forwarding Charges','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Legal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Miscellaneous Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Office Maintenance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Office Rent','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Postal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Print and Stationary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Rounded Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Salary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Sales Promotion Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''], - ['Service Charges Paid','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Staff Welfare Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Telephone Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Travelling Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''], - ['Water and Electricity Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''] - ] - - acc_list_india = [ - ['CENVAT Capital Goods','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['CENVAT Service Tax','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Service Tax Cess 1','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Service Tax Cess 2','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['CENVAT Edu Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['CENVAT SHE Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''], - ['Excise Duty 4','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'4.00'], - ['Excise Duty 8','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'8.00'], - ['Excise Duty 10','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'10.00'], - ['Excise Duty 14','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'14.00'], - ['Excise Duty Edu Cess 2','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'2.00'], - ['Excise Duty SHE Cess 1','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'1.00'], - ['P L A','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['P L A - Cess Portion','Tax Assets','Ledger','No','','Debit',self.doc.name,''], - ['Edu. Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Edu. Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Edu. Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'], - ['Excise Duty @ 4','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'4.00'], - ['Excise Duty @ 8','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'8.00'], - ['Excise Duty @ 10','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.00'], - ['Excise Duty @ 14','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'14.00'], - ['Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.3'], - ['SHE Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['SHE Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['SHE Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'], - ['Professional Tax','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['VAT','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Advertisement)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Commission)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Contractor)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Interest)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Rent)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''], - ['TDS (Salary)','Duties and Taxes','Ledger','No','','Credit',self.doc.name,''] - ] - # load common account heads - for d in acc_list_common: - self.add_acc(d) - - country = sql("select value from tabSingles where field = 'country' and doctype = 'Control Panel'") - country = country and cstr(country[0][0]) or '' - - # load taxes (only for India) - if country == 'India': - for d in acc_list_india: - self.add_acc(d) - - # Create account - # --------------------------------------------------- - def add_acc(self,lst): - ac = Document('Account') - for d in self.fld_dict.keys(): - ac.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]] - ac.old_parent = '' - ac_obj = get_obj(doc=ac) - ac_obj.validate() - ac_obj.doc.save(1) - ac_obj.on_update() - sql("commit") - sql("start transaction") - - - # Set letter head - # --------------------------------------------------- - def set_letter_head(self): - if not self.doc.letter_head: - if self.doc.address: - header = """ -

%(comp)s

%(add)s
- - """ % {'comp':self.doc.name, - 'add':self.doc.address.replace("\n",'
')} - - self.doc.letter_head = header - - # Set default AR and AP group - # --------------------------------------------------- - def set_default_groups(self): - if not self.doc.receivables_group: - set(self.doc, 'receivables_group', 'Accounts Receivable - '+self.doc.abbr) - if not self.doc.payables_group: - set(self.doc, 'payables_group', 'Accounts Payable - '+self.doc.abbr) - - - # Create default cost center - # --------------------------------------------------- - def create_default_cost_center(self): - glc = get_obj('GL Control') - cc_list = [{'cost_center_name':'Root','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Group','parent_cost_center':'','old_parent':''}, {'cost_center_name':'Default CC Ledger','company_name':self.doc.name,'company_abbr':self.doc.abbr,'group_or_ledger':'Ledger','parent_cost_center':'Root - ' + self.doc.abbr,'old_parent':''}] - for c in cc_list: - glc.add_cc(str(c)) - - - # On update - # --------------------------------------------------- - def on_update(self): - self.set_letter_head() - ac = sql("select name from tabAccount where account_name='Income' and company=%s", self.doc.name) - if not ac: - self.create_default_accounts() - self.set_default_groups() - cc = sql("select name from `tabCost Center` where cost_center_name = 'Root' and company_name = '%s'"%(self.doc.name)) - if not cc: - self.create_default_cost_center() - - # Trash accounts and cost centers for this company - # --------------------------------------------------- - #def on_trash1(self): - # acc = sql("select name from tabAccount where company = '%s' and docstatus != 2 order by lft desc, rgt desc limit 2" % self.doc.name, debug=1) - # for each in acc: - # get_obj('Account', each[0]).on_trash() - - # cc = sql("select name from `tabCost Center` where company_name = '%s' and docstatus != 2" % self.doc.name) - # for each in cc: - # get_obj('Cost Center', each[0]).on_trash() - - # msgprint("Company trashed. All the accounts and cost centers related to this company also trashed. You can restore it anytime from Setup -> Manage Trash") - - def on_trash(self): - rec = sql("SELECT sum(ab.opening), sum(ab.balance), sum(ab.debit), sum(ab.credit) FROM `tabAccount Balance` ab, `tabAccount` a WHERE ab.account = a.name and a.company = %s", self.doc.name) - if rec[0][0] == 0 and rec[0][1] == 0 and rec[0][2] == 0 and rec[0][3] == 0: - #delete tabAccount Balance - sql("delete ab.* from `tabAccount Balance` ab, `tabAccount` a where ab.account = a.name and a.company = %s", self.doc.name) - #delete tabAccount - sql("delete from `tabAccount` where company = %s order by lft desc, rgt desc", self.doc.name) - - #delete cost center child table - budget detail - sql("delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company_name = %s", self.doc.name) - #delete cost center - sql("delete from `tabCost Center` WHERE company_name = %s order by lft desc, rgt desc", self.doc.name) - - #update value as blank for tabDefaultValue defkey=company - sql("update `tabDefaultValue` set defvalue = '' where defkey='company' and defvalue = %s", self.doc.name) - - #update value as blank for tabSingles Manage Account - sql("update `tabSingles` set value = '' where doctype='Manage Account' and field = 'default_company' and value = %s", self.doc.name) - - # Restore accounts and cost centers for this company - # --------------------------------------------------- - def on_restore(self): - acc = sql("select name from tabAccount where company = '%s' and docstatus = 2" % self.doc.name) - for each in acc: - get_obj('Account', each[0]).on_restore() - - cc = sql("select name from `tabCost Center` where company_name = '%s' and docstatus = 2" % self.doc.name) - for each in cc: - get_obj('Cost Center', each[0]).on_restore() - - msgprint("Company restored. All the accounts and cost centers related to this company also restored.") - - # on rename - # --------- - def on_rename(self,newdn,olddn): - sql("update `tabCompany` set company_name = '%s' where name = '%s'" %(newdn,olddn)) diff --git a/startup/__init__.py b/startup/__init__.py deleted file mode 100644 index 5fd6ccd7d7..0000000000 --- a/startup/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# add startup propertes - -add_in_head = """ - -""" \ 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 eae0a2e84c..0000000000 --- a/stock/Module Def/Stock/Stock.txt +++ /dev/null @@ -1,421 +0,0 @@ -[ - { - '_last_update': None, - 'creation': '2011-06-30 15:49:38', - 'disabled': 'No', - 'docstatus': 0, - 'doctype': u'Module Def', - 'doctype_list': 'DocType Label, QA Inspection Report', - 'file_list': None, - 'idx': None, - 'is_hidden': 'No', - 'last_updated_date': None, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'module_desc': 'Material Management', - 'module_icon': 'Stock.gif', - 'module_label': 'Stock', - 'module_name': 'Stock', - 'module_page': None, - 'module_seq': 7, - 'name': 'Stock', - 'owner': 'Administrator', - 'parent': None, - 'parentfield': None, - 'parenttype': None, - 'trash_reason': None, - 'widget_code': None - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Item master', - 'display_name': 'Item', - 'doc_name': 'Item', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'name\nitem_group\ndescription', - 'hide': None, - 'icon': None, - 'idx': 1, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01321', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Record of items added, removed or moved from one warehouse to another.', - 'display_name': 'Stock Entry', - 'doc_name': 'Stock Entry', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'transfer_date\npurpose\nfrom_warehouse\nto_warehouse\nremarks', - 'hide': None, - 'icon': None, - 'idx': 2, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01322', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Record of items delivered to your customers along with the Printed Note', - 'display_name': 'Delivery Note', - 'doc_name': 'Delivery Note', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'status\ntransaction_date\ncustomer\nterritory\ngrand_total\nper_billed', - 'hide': None, - 'icon': None, - 'idx': 3, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01323', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Record of incoming material from your suppliers', - 'display_name': 'Purchase Receipt', - 'doc_name': 'Purchase Receipt', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'status\ntransaction_date\nsupplier\ngrand_total\nper_billed', - 'hide': None, - 'icon': None, - 'idx': 4, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01324', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Details of Installation done after delivery', - 'display_name': 'Installation Note', - 'doc_name': 'Installation Note', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 5, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01325', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Create Quality Inspection Report for any item', - 'display_name': 'Inspection Report', - 'doc_name': 'QA Inspection Report', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'inspection_type\nitem_code\nreport_date\npurchase_receipt_no\ndelivery_note_no', - 'hide': None, - 'icon': None, - 'idx': 6, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01326', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Reconcile your stock by uploading it form an excel file', - 'display_name': 'Stock Reconciliation', - 'doc_name': 'Stock Reconciliation', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': 'reconciliation_date\nreconciliation_time\nremark', - 'hide': None, - 'icon': None, - 'idx': 7, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01327', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'This utility tool will update Stock UOM in Item and will respectively update Actual Qty in Stock Ledger as per Conversion Factor.', - 'display_name': 'Stock UOM Replace Utility', - 'doc_name': 'Stock UOM Replace Utility', - 'doc_type': 'Single DocType', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 8, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01328', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'This utility will help in tracking stock for Sales Return and Purchase Return.', - 'display_name': 'Sales and Purchase Return Wizard', - 'doc_name': 'Sales and Purchase Return Wizard', - 'doc_type': 'Single DocType', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 9, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01329', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 18:57:58', - 'description': 'You can create master template for landed cost wizard', - 'display_name': 'Landed Cost Master', - 'doc_name': 'Landed Cost Master', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': 'accept.gif', - 'idx': 10, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01372', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 18:57:58', - 'description': 'Add extra expenses into Purchase Receipt which should be consider for item valuation. The cost will be added proportionately as per purchase receipt value.', - 'display_name': 'Landed Cost Wizard', - 'doc_name': 'Landed Cost Wizard', - 'doc_type': 'Forms', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': 'accept.gif', - 'idx': 11, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01371', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, - 'display_name': 'Stock Ledger', - 'doc_name': 'Stock Ledger Entry', - 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 12, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01330', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, - 'display_name': 'Stock Level', - 'doc_name': 'Bin', - 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 13, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01331', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, - 'display_name': 'Shortage To Indent', - 'doc_name': 'Item', - 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 14, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01332', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': 'Stock Value as per Item and Warehouse', - 'display_name': 'Stock Report', - 'doc_name': 'Stock Ledger Entry', - 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 15, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01333', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'click_function': None, - 'creation': '2011-06-30 15:49:38', - 'description': None, - 'display_name': 'Stock Aging Report', - 'doc_name': 'Serial No', - 'doc_type': 'Reports', - 'docstatus': 0, - 'doctype': 'Module Def Item', - 'fields': None, - 'hide': None, - 'icon': None, - 'idx': 16, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDI01334', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'items', - 'parenttype': 'Module Def' - }, - { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 1, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00336', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material User' - }, - { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 2, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00337', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material Master Manager' - }, - { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 3, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00338', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Material Manager' - }, - { - 'creation': '2011-06-30 15:49:38', - 'docstatus': 0, - 'doctype': 'Module Def Role', - 'idx': 4, - 'modified': '2011-07-01 09:36:22', - 'modified_by': 'Administrator', - 'name': 'MDR00339', - 'owner': 'Administrator', - 'parent': 'Stock', - 'parentfield': 'roles', - 'parenttype': 'Module Def', - 'role': 'Quality Manager' - } -] \ No newline at end of file diff --git a/support/Module Def/Support/Support.txt b/support/Module Def/Support/Support.txt deleted file mode 100644 index 9b39572756..0000000000 --- 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 0000000000..5a4f9b6c47 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,21 @@ + + + + ERPNext + + + + +
+ + +
+ + +
+ {{ content }} +
+
+ +
+ \ No newline at end of file diff --git a/todo.md b/todo.md new file mode 100644 index 0000000000..9e2c9065e6 --- /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 0000000000..0b3bcb2d3f Binary files /dev/null and b/versions-master.db differ
"""+l_head+"""
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/lease_monthly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/itemwise_purchase_register/__init__.py similarity index 100% rename from accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py rename to erpnext/accounts/search_criteria/itemwise_purchase_register/__init__.py diff --git a/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js rename to erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.js diff --git a/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt b/erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt similarity index 100% rename from accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt rename to erpnext/accounts/search_criteria/itemwise_purchase_register/itemwise_purchase_register.txt diff --git a/accounts/search_criteria/lease_over_due_list/__init__.py b/erpnext/accounts/search_criteria/itemwise_sales_register/__init__.py similarity index 100% rename from accounts/search_criteria/lease_over_due_list/__init__.py rename to erpnext/accounts/search_criteria/itemwise_sales_register/__init__.py diff --git a/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js rename to erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.js diff --git a/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt b/erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt similarity index 100% rename from accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt rename to erpnext/accounts/search_criteria/itemwise_sales_register/itemwise_sales_register.txt diff --git a/accounts/search_criteria/lease_overdue_age_wise/__init__.py b/erpnext/accounts/search_criteria/lease_agreement_list/__init__.py similarity index 100% rename from accounts/search_criteria/lease_overdue_age_wise/__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 f47c6095fd..5e84916ffd 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_receipt_summary_month_wise/__init__.py b/erpnext/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py similarity index 100% rename from accounts/search_criteria/lease_receipt_summary_month_wise/__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_receipts_client_wise/__init__.py b/erpnext/accounts/search_criteria/lease_over_due_list/__init__.py similarity index 100% rename from accounts/search_criteria/lease_receipts_client_wise/__init__.py rename to erpnext/accounts/search_criteria/lease_over_due_list/__init__.py diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.js rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.js diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.py rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.py diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.sql diff --git a/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt b/erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt similarity index 100% rename from accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt rename to erpnext/accounts/search_criteria/lease_over_due_list/lease_over_due_list.txt diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/erpnext/accounts/search_criteria/lease_overdue_age_wise/__init__.py similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py rename to erpnext/accounts/search_criteria/lease_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/monthly_ledger_summary_report/__init__.py b/erpnext/accounts/search_criteria/lease_receipt_summary_month_wise/__init__.py similarity index 100% rename from accounts/search_criteria/monthly_ledger_summary_report/__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 6e1b266ea5..e6da15c270 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/payment_receipt_report/__init__.py b/erpnext/accounts/search_criteria/lease_receipts_client_wise/__init__.py similarity index 100% rename from accounts/search_criteria/payment_receipt_report/__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 b155b39a6a..71c9b0ead7 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/payment_report/__init__.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py similarity index 100% rename from accounts/search_criteria/payment_report/__init__.py rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.js diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.py diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.sql diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt b/erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt similarity index 100% rename from accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt rename to erpnext/accounts/search_criteria/lease_yearly_future_installment_inflows/lease_yearly_future_installment_inflows.txt diff --git a/accounts/search_criteria/progressive_total_excise_duty/__init__.py b/erpnext/accounts/search_criteria/monthly_ledger_summary_report/__init__.py similarity index 100% rename from accounts/search_criteria/progressive_total_excise_duty/__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/purchase_register/__init__.py b/erpnext/accounts/search_criteria/payment_receipt_report/__init__.py similarity index 100% rename from accounts/search_criteria/purchase_register/__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/sales_register/__init__.py b/erpnext/accounts/search_criteria/payment_report/__init__.py similarity index 100% rename from accounts/search_criteria/sales_register/__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/service_tax_credit_account___inputs/__init__.py b/erpnext/accounts/search_criteria/progressive_total_excise_duty/__init__.py similarity index 100% rename from accounts/search_criteria/service_tax_credit_account___inputs/__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/tds_return/__init__.py b/erpnext/accounts/search_criteria/purchase_register/__init__.py similarity index 100% rename from accounts/search_criteria/tds_return/__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/total_amout_collection_for_a_period___customerwise/__init__.py b/erpnext/accounts/search_criteria/sales_register/__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/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/trial_balance/__init__.py b/erpnext/accounts/search_criteria/service_tax_credit_account___inputs/__init__.py similarity index 100% rename from accounts/search_criteria/trial_balance/__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/analysis/__init__.py b/erpnext/accounts/search_criteria/tds_return/__init__.py similarity index 100% rename from analysis/__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/analysis/doctype/__init__.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py similarity index 100% rename from analysis/doctype/__init__.py rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/__init__.py diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.js diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.py diff --git a/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt b/erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt similarity index 100% rename from accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt rename to erpnext/accounts/search_criteria/total_amout_collection_for_a_period___customerwise/total_amout_collection_for_a_period___customerwise.txt diff --git a/analysis/doctype/mis_control/__init__.py b/erpnext/accounts/search_criteria/trial_balance/__init__.py similarity index 100% rename from analysis/doctype/mis_control/__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 52% rename from accounts/search_criteria/trial_balance/trial_balance.py rename to erpnext/accounts/search_criteria/trial_balance/trial_balance.py index fb168e57af..994a5b8baa 100644 --- a/accounts/search_criteria/trial_balance/trial_balance.py +++ b/erpnext/accounts/search_criteria/trial_balance/trial_balance.py @@ -1,13 +1,13 @@ # Columns #---------- -cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing', 'Data', '100px']] +cl = [['Account','Data', '200px'],['Debit/Credit', 'Data', '100px'], ['Group/Ledger', 'Data', '100px'], ['Is PL Account', 'Data', '100px'], ['Opening (Dr)','Data', '100px'], ['Opening (Cr)','Data', '100px'],['Debit', 'Data', '100px'],['Credit', 'Data', '100px'],['Closing (Dr)', 'Data', '100px'],['Closing (Cr)', 'Data', '100px']] for c in cl: colnames.append(c[0]) coltypes.append(c[1]) colwidths.append(c[2]) coloptions.append('') col_idx[c[0]] = len(colnames)-1 - + # transaction date # ------------------ if not filter_values.get('transaction_date') or not filter_values.get('transaction_date1'): @@ -23,7 +23,7 @@ if not sql("select name from `tabFiscal Year` where %s between year_start_date a msgprint("From Date and To Date must be within same year") raise Exception -# get year of the from date and to date +# get year of the from date and to date # -------------------------------------- from_date_year = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",add_days(from_date, -1)) from_date_year = from_date_year and from_date_year[0][0] or '' @@ -33,11 +33,17 @@ to_date_year = to_date_year and to_date_year[0][0] or '' # if output is more than 500 lines then it will ask to export # ------------------------------------------------------------ -if len(res) > 500 and from_export == 0: +if len(res) > 1000 and from_export == 0: msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please click on 'Export' to open in a spreadsheet") raise Exception + -total_debit, total_credit = 0,0 +acc_dict = {} +for t in sql("select name, debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where docstatus != 2 and company = %s", filter_values['company']): + acc_dict[t[0]] = [t[1], t[2], t[3], t[4], t[5]] + + +total_debit, total_credit, total_opening_dr, total_opening_cr, total_closing_dr, total_closing_cr = 0, 0, 0, 0, 0, 0 glc = get_obj('GL Control') # Main logic @@ -45,47 +51,55 @@ glc = get_obj('GL Control') for r in res: # Fetch account details acc = r[col_idx['Account']].strip() - acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt, group_or_ledger from tabAccount where name = '%s'" % acc) - r.append(acc_det[0][0]) - r.append(acc_det[0][4]) - r.append(acc_det[0][1]) + r.append(acc_dict[acc][0]) + r.append(acc_dict[acc][4]) + r.append(acc_dict[acc][1]) #if shows group and ledger both but without group balance - if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_det[0][4] == 'Group': + if filter_values.get('show_group_ledger') == 'Both But Without Group Balance' and acc_dict[acc][4] == 'Group': for i in range(4): r.append('') continue - # opening balance - if from_date_year: - debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_det[0][0], acc_det[0][2], acc_det[0][3]) - else: # if there is no previous year in system - debit_on_fromdate, credit_on_fromdate, opening = 0, 0, 0 + # Opening Balance + #----------------------------- + if from_date_year == to_date_year: + debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(from_date, -1), acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3]) # opening = closing of prev_date + elif acc_dict[acc][1] == 'No': # if there is no previous year in system and not pl account + opening = sql("select opening from `tabAccount Balance` where account = %s and period = %s", (acc, to_date_year)) + debit_on_fromdate, credit_on_fromdate, opening = 0, 0, flt(opening[0][0]) + else: # if pl account and there is no previous year in system + debit_on_fromdate, credit_on_fromdate, opening = 0,0,0 # closing balance - debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_det[0][0], acc_det[0][2], acc_det[0][3]) + #-------------------------------- + debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, to_date, acc_dict[acc][0], acc_dict[acc][2], acc_dict[acc][3]) # transaction betn the period - if from_date_year == to_date_year: - debit = flt(debit_on_todate) - flt(debit_on_fromdate) - credit = flt(credit_on_todate) - flt(credit_on_fromdate) - else: # if from date is start date of the year - debit = flt(debit_on_todate) - credit = flt(credit_on_todate) - + #---------------------------------------- + + debit = flt(debit_on_todate) - flt(debit_on_fromdate) + credit = flt(credit_on_todate) - flt(credit_on_fromdate) + + # Debit / Credit + if acc_dict[acc][0] == 'Credit': + opening, closing = -1*opening, -1*closing + + # Totals + total_opening_dr += opening>0 and flt(opening) or 0 + total_opening_cr += opening<0 and -1*flt(opening) or 0 total_debit += debit total_credit += credit - - if acc_det[0][1] == 'Yes' and from_date_year != to_date_year: - opening = 0 - - if acc_det[0][0] == 'Credit': - opening, closing = -1*opening, -1*closing + total_closing_dr += closing>0 and flt(closing) or 0 + total_closing_cr += closing<0 and -1*flt(closing) or 0 - r.append(flt(opening)) + # Append in rows + r.append(flt(opening>0 and opening or 0)) + r.append(flt(opening<0 and -opening or 0)) r.append(flt(debit)) r.append(flt(credit)) - r.append(flt(closing)) + r.append(flt(closing>0 and closing or 0)) + r.append(flt(closing<0 and -closing or 0)) out =[] @@ -94,14 +108,18 @@ for r in res: # ------------------------------------------------------------------ if filter_values.get('show_zero_balance') != 'No': out.append(r) - elif r[col_idx['Opening']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'): + elif r[col_idx['Opening (Dr)']] or r[col_idx['Opening (Cr)']] or r[col_idx['Debit']] or r[col_idx['Credit']] or r[col_idx['Closing (Dr)']] or r[col_idx['Closing (Cr)']] or (r[col_idx['Group/Ledger']] == 'Group' and filter_values.get('show_group_ledger') == 'Both But Without Group Balance'): out.append(r) - + # Total Debit / Credit # -------------------------- if filter_values.get('show_group_ledger') in ['Only Ledgers', 'Both But Without Group Balance']: t_row = ['' for i in range(len(colnames))] t_row[col_idx['Account']] = 'Total' - t_row[col_idx['Debit']] = total_debit - t_row[col_idx['Credit']] = total_credit + t_row[col_idx['Opening (Dr)']] = '%.2f' % total_opening_dr + t_row[col_idx['Opening (Cr)']] = '%.2f' % total_opening_cr + t_row[col_idx['Debit']] = '%.2f' % total_debit + t_row[col_idx['Credit']] = '%.2f' % total_credit + t_row[col_idx['Closing (Dr)']] = '%.2f' % total_closing_dr + t_row[col_idx['Closing (Cr)']] = '%.2f' % total_closing_cr out.append(t_row) 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/analysis/doctype/ta_control/__init__.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from analysis/doctype/ta_control/__init__.py rename to erpnext/accounts/search_criteria/voucher_wise_tax_details/__init__.py diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js new file mode 100644 index 0000000000..a89fa86083 --- /dev/null +++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.js @@ -0,0 +1,47 @@ +report.customize_filters = function() { + this.hide_all_filters(); + + //Add filter + this.add_filter({fieldname:'based_on', label:'Based On', fieldtype:'Select', options:'Sales Order'+NEWLINE+'Delivery Note'+NEWLINE+'Sales Invoice', report_default:'Sales Invoice', ignore : 1,parent:'RV Tax Detail', single_select :1, in_first_page:1}); + + this.add_filter({fieldname:'posting_date', label:'Date', fieldtype:'Date', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1}); + + this.add_filter({fieldname:'voucher_id', label:'Voucher Id', fieldtype:'Data', options:'', ignore : 1,parent:'RV Tax Detail', in_first_page:1}); + + this.add_filter({fieldname:'tax_account', label:'Tax Account', fieldtype:'Link', options:'Account', ignore : 1,parent:'RV Tax Detail', in_first_page:1}); +} + + +// hide sections +//-------------------------------------- +this.mytabs.items['More Filters'].hide(); +this.mytabs.items['Select Columns'].hide(); + +// Get query +//-------------------------------------- +report.get_query = function() { + based_on = this.get_filter('RV Tax Detail', 'Based On').get_value(); + from_date = this.get_filter('RV Tax Detail', 'From Date').get_value(); + to_date = this.get_filter('RV Tax Detail', 'To Date').get_value(); + vid = this.get_filter('RV Tax Detail', 'Voucher Id').get_value(); + acc = this.get_filter('RV Tax Detail', 'Tax Account').get_value(); + + date_fld = 'transaction_date'; + if(based_on == 'Sales Invoice') { + based_on = 'Receivable Voucher'; + date_fld = 'voucher_date'; + } + + sp_cond = ''; + if (from_date) sp_cond += repl(' AND t1.%(dt)s >= "%(from_date)s"', {dt:date_fld, from_date:from_date}); + if (to_date) sp_cond += repl(' AND t1.%(dt)s <= "%(to_date)s"', {dt:date_fld, to_date:to_date}); + if (vid) sp_cond += repl(' AND t1.name LIKE "%%(voucher)s%"', {voucher:vid}); + if (acc) sp_cond += repl(' AND t2.account_head = "%(acc)s"', {acc:acc}); + + return repl('SELECT t1.`name`, t1.`%(dt)s`, t1.`customer_name`, t1.net_total, t2.account_head, t2.description, t2.rate, t2.tax_amount \ + FROM `tab%(parent)s` t1, `tabRV Tax Detail` t2 \ + WHERE t1.docstatus=1 AND t2.`parenttype` = "%(parent)s" \ + AND t2.`parent` = t1.`name` \ + %(cond)s ORDER BY t1.`name` DESC, t1.%(dt)s DESC', {parent:based_on, cond:sp_cond, dt:date_fld}); +} + diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py new file mode 100644 index 0000000000..91e90f2fe4 --- /dev/null +++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.py @@ -0,0 +1,22 @@ +if filter_values.get('based_on') == 'Sales Invoice': + based_on_dt = 'Receivable Voucher' +else: + based_on_dt = filter_values.get('based_on') + +cols = [ + [filter_values.get('based_on'), 'Link','150px', based_on_dt], + ['Transaction Date', 'Date', '120px', ''], + ['Customer', 'Link','150px','Customer'], + ['Net Total', 'Currency', '80px', ''], + ['Tax Account', 'Link','150px','Account'], + ['Description', 'Text','120px',''], + ['Tax Rate', 'Currency', '80px', ''], + ['Tax Amount', 'Currency', '80px', ''] +] + +for c in cols: + colnames.append(c[0]) + coltypes.append(c[1]) + colwidths.append(c[2]) + coloptions.append(c[3]) + col_idx[c[0]] = len(colnames)-1 diff --git a/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt new file mode 100644 index 0000000000..c152c7905f --- /dev/null +++ b/erpnext/accounts/search_criteria/voucher_wise_tax_details/voucher_wise_tax_details.txt @@ -0,0 +1,34 @@ +# Search Criteria, voucher_wise_tax_details +[ + + # These values are common in all dictionaries + { + 'creation': '2011-09-06 15:36:58', + 'docstatus': 0, + 'modified': '2011-09-06 15:50:28', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all Search Criteria + { + 'columns': 'RV Tax Detail\x01Type,RV Tax Detail\x01Account Head,RV Tax Detail\x01Cost Center,RV Tax Detail\x01Description,RV Tax Detail\x01Rate,RV Tax Detail\x01Amount*,RV Tax Detail\x01Total*', + 'criteria_name': 'Voucher wise tax details', + 'doc_type': 'RV Tax Detail', + 'doctype': 'Search Criteria', + 'filters': "{'Delivery Note\x01Submitted':1,'Delivery Note\x01Status':'','Delivery Note\x01Fiscal Year':''}", + 'module': 'Accounts', + 'name': '__common__', + 'page_len': 50, + 'parent_doc_type': 'Delivery Note', + 'sort_by': '`tabRV Tax Detail`.`parent`', + 'sort_order': 'DESC', + 'standard': 'Yes' + }, + + # Search Criteria, voucher_wise_tax_details + { + 'doctype': 'Search Criteria', + 'name': 'voucher_wise_tax_details' + } +] \ No newline at end of file diff --git a/accounts/utils/__init__.py b/erpnext/accounts/utils/__init__.py similarity index 100% rename from accounts/utils/__init__.py rename to erpnext/accounts/utils/__init__.py diff --git a/analysis/Module Def/Analysis/Analysis.txt b/erpnext/analysis/Module Def/Analysis/Analysis.txt similarity index 100% rename from analysis/Module Def/Analysis/Analysis.txt rename to erpnext/analysis/Module Def/Analysis/Analysis.txt diff --git a/analysis/page/__init__.py b/erpnext/analysis/__init__.py similarity index 100% rename from analysis/page/__init__.py rename to erpnext/analysis/__init__.py diff --git a/analysis/search_criteria/__init__.py b/erpnext/analysis/doctype/__init__.py similarity index 100% rename from analysis/search_criteria/__init__.py rename to erpnext/analysis/doctype/__init__.py diff --git a/analysis/search_criteria/monthly_transaction_summary/__init__.py b/erpnext/analysis/doctype/mis_control/__init__.py similarity index 100% rename from analysis/search_criteria/monthly_transaction_summary/__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/search_criteria/trend_analyzer/__init__.py b/erpnext/analysis/doctype/ta_control/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from analysis/search_criteria/trend_analyzer/__init__.py rename to erpnext/analysis/doctype/ta_control/__init__.py diff --git a/analysis/doctype/ta_control/ta_control.py b/erpnext/analysis/doctype/ta_control/ta_control.py similarity index 100% rename from analysis/doctype/ta_control/ta_control.py rename to erpnext/analysis/doctype/ta_control/ta_control.py diff --git a/analysis/doctype/ta_control/ta_control.txt b/erpnext/analysis/doctype/ta_control/ta_control.txt similarity index 100% rename from analysis/doctype/ta_control/ta_control.txt rename to erpnext/analysis/doctype/ta_control/ta_control.txt diff --git a/analysis/search_criteria/yearly_transaction_summary/__init__.py b/erpnext/analysis/page/__init__.py similarity index 100% rename from analysis/search_criteria/yearly_transaction_summary/__init__.py rename to erpnext/analysis/page/__init__.py diff --git a/buying/__init__.py b/erpnext/analysis/search_criteria/__init__.py similarity index 100% rename from buying/__init__.py rename to erpnext/analysis/search_criteria/__init__.py diff --git a/buying/doctype/__init__.py b/erpnext/analysis/search_criteria/monthly_transaction_summary/__init__.py similarity index 100% rename from buying/doctype/__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/buying/doctype/indent/__init__.py b/erpnext/analysis/search_criteria/trend_analyzer/__init__.py similarity index 100% rename from buying/doctype/indent/__init__.py rename to erpnext/analysis/search_criteria/trend_analyzer/__init__.py diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.js b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js similarity index 97% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.js rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js index 72334df1b4..9a87abbd11 100644 --- a/analysis/search_criteria/trend_analyzer/trend_analyzer.js +++ b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.js @@ -13,8 +13,8 @@ report.customize_filters = function() { this.add_filter({fieldname:'company', label:'Company', fieldtype:'Link', options:'Company', report_default:sys_defaults.company, ignore : 1, parent:'Profile'}); - this.set_filter_properties('Profile','Fiscal Year',{filter_hide:0, in_first_page:1, report_default: sys_defaults.fiscal_year}); - this.get_filter('Profile', 'Fiscal Year').set_as_single(); + this.add_filter({fieldname:'fiscal_year', label:'Fiscal Year', fieldtype:'Link', options:'Fiscal Year', report_default:sys_defaults.fiscal_year, ignore : 1, parent:'Profile', in_first_page:1}); + // Add Filters this.add_filter({fieldname:'item', label:'Item', fieldtype:'Link', options:'Item', ignore : 1, parent:'Profile'}); @@ -118,4 +118,4 @@ report.get_query = function() { return q; } -} \ No newline at end of file +} diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.py b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py similarity index 100% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.py rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.py diff --git a/analysis/search_criteria/trend_analyzer/trend_analyzer.txt b/erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt similarity index 100% rename from analysis/search_criteria/trend_analyzer/trend_analyzer.txt rename to erpnext/analysis/search_criteria/trend_analyzer/trend_analyzer.txt diff --git a/buying/doctype/indent_detail/__init__.py b/erpnext/analysis/search_criteria/yearly_transaction_summary/__init__.py similarity index 100% rename from buying/doctype/indent_detail/__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 30412182fd..fe49f4901e 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 d32aeb63ce..b4dafc9a2f 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/doctype/po_detail/__init__.py b/erpnext/buying/__init__.py similarity index 100% rename from buying/doctype/po_detail/__init__.py rename to erpnext/buying/__init__.py diff --git a/buying/doctype/po_raw_material_detail/__init__.py b/erpnext/buying/doctype/__init__.py similarity index 100% rename from buying/doctype/po_raw_material_detail/__init__.py rename to erpnext/buying/doctype/__init__.py diff --git a/buying/doctype/pr_raw_material_detail/__init__.py b/erpnext/buying/doctype/indent/__init__.py similarity index 100% rename from buying/doctype/pr_raw_material_detail/__init__.py rename to erpnext/buying/doctype/indent/__init__.py diff --git a/buying/doctype/indent/indent.js b/erpnext/buying/doctype/indent/indent.js similarity index 100% rename from buying/doctype/indent/indent.js rename to erpnext/buying/doctype/indent/indent.js diff --git a/buying/doctype/indent/indent.py b/erpnext/buying/doctype/indent/indent.py similarity index 100% rename from buying/doctype/indent/indent.py rename to erpnext/buying/doctype/indent/indent.py diff --git a/buying/doctype/indent/indent.txt b/erpnext/buying/doctype/indent/indent.txt similarity index 100% rename from buying/doctype/indent/indent.txt rename to erpnext/buying/doctype/indent/indent.txt diff --git a/buying/doctype/purchase_common/__init__.py b/erpnext/buying/doctype/indent_detail/__init__.py similarity index 100% rename from buying/doctype/purchase_common/__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/purchase_order/__init__.py b/erpnext/buying/doctype/po_detail/__init__.py similarity index 100% rename from buying/doctype/purchase_order/__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/purchase_other_charges/__init__.py b/erpnext/buying/doctype/po_raw_material_detail/__init__.py similarity index 100% rename from buying/doctype/purchase_other_charges/__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/qa_inspection_report/__init__.py b/erpnext/buying/doctype/pr_raw_material_detail/__init__.py similarity index 100% rename from buying/doctype/qa_inspection_report/__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/qa_specification_detail/__init__.py b/erpnext/buying/doctype/purchase_common/__init__.py similarity index 100% rename from buying/doctype/qa_specification_detail/__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/raw_materials_supplied/__init__.py b/erpnext/buying/doctype/purchase_order/__init__.py similarity index 100% rename from buying/doctype/raw_materials_supplied/__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/supplier/__init__.py b/erpnext/buying/doctype/purchase_other_charges/__init__.py similarity index 100% rename from buying/doctype/supplier/__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/supplier_quotation/__init__.py b/erpnext/buying/doctype/qa_inspection_report/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from buying/doctype/supplier_quotation/__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 0000000000..a0ee1dcd6f --- /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 93% rename from buying/doctype/qa_inspection_report/qa_inspection_report.txt rename to erpnext/buying/doctype/qa_inspection_report/qa_inspection_report.txt index 10890dc846..de88e1621e 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/page/__init__.py b/erpnext/buying/doctype/qa_specification_detail/__init__.py similarity index 100% rename from buying/page/__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/search_criteria/__init__.py b/erpnext/buying/doctype/raw_materials_supplied/__init__.py similarity index 100% rename from buying/search_criteria/__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/search_criteria/itemwise_purchase_details/__init__.py b/erpnext/buying/doctype/supplier/__init__.py similarity index 100% rename from buying/search_criteria/itemwise_purchase_details/__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/search_criteria/itemwise_receipt_details/__init__.py b/erpnext/buying/doctype/supplier_quotation/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from buying/search_criteria/itemwise_receipt_details/__init__.py rename to erpnext/buying/doctype/supplier_quotation/__init__.py diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.js rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.js diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.py rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.py diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.txt similarity index 100% rename from buying/doctype/supplier_quotation/supplier_quotation.txt rename to erpnext/buying/doctype/supplier_quotation/supplier_quotation.txt diff --git a/buying/search_criteria/pending_po_items_to_bill/__init__.py b/erpnext/buying/page/__init__.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_bill/__init__.py rename to erpnext/buying/page/__init__.py diff --git a/buying/search_criteria/pending_po_items_to_receive/__init__.py b/erpnext/buying/search_criteria/__init__.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/__init__.py rename to erpnext/buying/search_criteria/__init__.py diff --git a/buying/search_criteria/purchase_in_transit/__init__.py b/erpnext/buying/search_criteria/itemwise_purchase_details/__init__.py similarity index 100% rename from buying/search_criteria/purchase_in_transit/__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/home/doctype/__init__.py b/erpnext/buying/search_criteria/itemwise_receipt_details/__init__.py similarity index 100% rename from home/doctype/__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/home/doctype/company_control/__init__.py b/erpnext/buying/search_criteria/pending_po_items_to_bill/__init__.py similarity index 100% rename from home/doctype/company_control/__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/home/doctype/feed/__init__.py b/erpnext/buying/search_criteria/pending_po_items_to_receive/__init__.py similarity index 100% rename from home/doctype/feed/__init__.py rename to erpnext/buying/search_criteria/pending_po_items_to_receive/__init__.py diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.js diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt b/erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt similarity index 100% rename from buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt rename to erpnext/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt diff --git a/home/doctype/home_control/__init__.py b/erpnext/buying/search_criteria/purchase_in_transit/__init__.py similarity index 100% rename from home/doctype/home_control/__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/widget_control/__init__.py b/erpnext/home/doctype/__init__.py similarity index 100% rename from home/doctype/widget_control/__init__.py rename to erpnext/home/doctype/__init__.py diff --git a/home/page/__init__.py b/erpnext/home/doctype/company_control/__init__.py similarity index 100% rename from home/page/__init__.py rename to erpnext/home/doctype/company_control/__init__.py diff --git a/home/doctype/company_control/company_control.py b/erpnext/home/doctype/company_control/company_control.py similarity index 91% rename from home/doctype/company_control/company_control.py rename to erpnext/home/doctype/company_control/company_control.py index cab8e7c17e..9c055a706a 100644 --- a/home/doctype/company_control/company_control.py +++ b/erpnext/home/doctype/company_control/company_control.py @@ -53,6 +53,15 @@ class DocType: pr.role = r pr.parentfield = 'userroles' pr.save(1) + + # Update Membership Type at Gateway + if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')): + if 'System Manager' in role_list : membership_type = 'Administrator' + else : membership_type = 'Member' + + import server_tools.gateway_utils + server_tools.gateway_utils.update_membership_type(cstr(arg['usr']), membership_type) + sql("delete from __SessionCache where user=%s", cstr(arg['usr'])) # Save profile @@ -63,10 +72,6 @@ class DocType: 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/page/dashboard/__init__.py b/erpnext/home/doctype/feed/__init__.py similarity index 100% rename from home/page/dashboard/__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/page/event_updates/__init__.py b/erpnext/home/doctype/home_control/__init__.py similarity index 100% rename from home/page/event_updates/__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 1f58a5e236..8242e74431 100644 --- a/home/doctype/home_control/home_control.py +++ b/erpnext/home/doctype/home_control/home_control.py @@ -33,9 +33,6 @@ class DocType: ml = sql("select distinct t1.name, t1.module_icon, t1.module_label, t1.module_desc, t1.module_page from `tabModule Def` t1, `tabModule Def Role` t2 where t2.role in ('%s') and t1.disabled !='Yes' and ifnull(t1.is_hidden, 'No') != 'Yes' and t1.name = t2.parent order by t1.module_seq asc" % "','".join(rl), as_dict=1) return ml - def get_login_url(self): - return session['data'].get('login_from', '') - def get_module_details(self,m): ret = {} ret['il'] = sql('select doc_type, doc_name, display_name, icon, description, fields, click_function, idx from `tabModule Def Item` where parent=%s and ifnull(`hide`,0)=0 order by idx asc', m, as_dict=1) @@ -50,6 +47,9 @@ class DocType: AND t2.read=1 AND t2.role IN ("%s") AND ifnull(standard,"No")="No"''' % (m, '", "'.join(webnotes.user.get_roles())), as_dict=1) + + ret['login_url'] = session['data'].get('login_from', '') + return ret # ---------------------------------------------------------------------------------------------------------------- @@ -121,24 +121,6 @@ class DocType: 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 @@ class DocType: # ------------------------------------------------------------------------------------------------------- - 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/page/my_company/__init__.py b/erpnext/home/doctype/widget_control/__init__.py similarity index 100% rename from home/page/my_company/__init__.py rename to erpnext/home/doctype/widget_control/__init__.py diff --git a/home/doctype/widget_control/widget_control.py b/erpnext/home/doctype/widget_control/widget_control.py similarity index 78% rename from home/doctype/widget_control/widget_control.py rename to erpnext/home/doctype/widget_control/widget_control.py index fa41cc9db2..d6bb9d1c45 100644 --- a/home/doctype/widget_control/widget_control.py +++ b/erpnext/home/doctype/widget_control/widget_control.py @@ -27,11 +27,6 @@ class DocType: cmt.comment_date = nowdate() cmt.comment_time = time.strftime('%H:%M') cmt.save(1) - - try: - get_obj('Feed Control').upate_comment_in_feed(args['comment_doctype'], args['comment_docname']) - except: - pass else: raise Exception @@ -39,7 +34,3 @@ class DocType: def remove_comment(self, args): args = json.loads(args) sql("delete from `tabComment Widget Record` where name=%s",args['id']) - - try: - get_obj('Feed Control').upate_comment_in_feed(args['dt'], args['dn']) - except: pass diff --git a/home/doctype/widget_control/widget_control.txt b/erpnext/home/doctype/widget_control/widget_control.txt similarity index 100% rename from home/doctype/widget_control/widget_control.txt rename to erpnext/home/doctype/widget_control/widget_control.txt diff --git a/home/page/.DS_Store b/erpnext/home/page/.DS_Store similarity index 100% rename from home/page/.DS_Store rename to erpnext/home/page/.DS_Store diff --git a/home/page/profile_settings/__init__.py b/erpnext/home/page/__init__.py similarity index 100% rename from home/page/profile_settings/__init__.py rename to erpnext/home/page/__init__.py diff --git a/home/search_criteria/__init__.py b/erpnext/home/page/dashboard/__init__.py similarity index 100% rename from home/search_criteria/__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 15e7cf3fdc..08be0af675 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 diff --git a/home/search_criteria/bills_to_be_paid/__init__.py b/erpnext/home/page/event_updates/__init__.py similarity index 100% rename from home/search_criteria/bills_to_be_paid/__init__.py rename to erpnext/home/page/event_updates/__init__.py diff --git a/home/page/event_updates/event_updates.css b/erpnext/home/page/event_updates/event_updates.css similarity index 100% rename from home/page/event_updates/event_updates.css rename to erpnext/home/page/event_updates/event_updates.css diff --git a/home/page/event_updates/event_updates.html b/erpnext/home/page/event_updates/event_updates.html similarity index 100% rename from home/page/event_updates/event_updates.html rename to erpnext/home/page/event_updates/event_updates.html diff --git a/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js similarity index 92% rename from home/page/event_updates/event_updates.js rename to erpnext/home/page/event_updates/event_updates.js index e93ed9db63..b58a0c0914 100644 --- a/home/page/event_updates/event_updates.js +++ b/erpnext/home/page/event_updates/event_updates.js @@ -39,9 +39,6 @@ pscript.home_pre_process = function(wrapper) { var banner = $a(wrapper.banner_area, 'div', '', {paddingBottom:'4px'}) banner.innerHTML = cp.client_name; } - - // complete registration - if(in_list(user_roles,'System Manager')) { pscript.complete_registration(); } } // Widgets @@ -78,16 +75,8 @@ pscript.home_make_widgets = function() { } } ] - }) - sidebar.refresh() - - /*$y(cell,{padding:'0px 8px'}); - - new HomeCalendar(new HomeWidget(cell, 'Calendar', 'Event')); - - - new HomeToDo(new HomeWidget(cell, 'To Do', 'Item'));*/ - + }); + new FeedList(wrapper.body); } @@ -134,7 +123,7 @@ HomeWidget = function(parent, heading, item) { this.footer = $a(this.wrapper,'div'); // add button - this.add_btn = $btn(this.footer,'+ Add ' + item,function(){me.add()}); + this.add_btn = $btn(this.footer,'+ Add ' + item,function(){me.add()},null,'cupid-blue'); // refresh this.refresh_btn = $ln(this.footer,'Refresh',function() { me.refresh(); },{fontSize:'11px',marginLeft:'7px',color:'#888'}); @@ -442,7 +431,7 @@ FeedList.prototype.make_head = function() { ); if(has_common(user_roles, ['System Manager','Accounts Manager'])) { - $btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'}) + $btn(this.head, 'Dashboard', function() {loadpage('dashboard'); }, {marginLeft:'7px'}, 'cupid-blue') } } @@ -618,6 +607,11 @@ pscript.home_make_status = function() { // render online users pscript.online_users_obj.render(r.message.online_users); pscript.online_users = r.message.online_users; + + // complete registration + if(in_list(user_roles,'System Manager')) { + pscript.complete_registration(r.message.registration_complete); + } // setup wizard if(r.message.setup_status) { @@ -629,54 +623,57 @@ pscript.home_make_status = function() { // complete my company registration // -------------------------------- -pscript.complete_registration = function() -{ - var reg_callback = function(r, rt){ - if(r.message == 'No'){ - var d = new Dialog(400, 200, "Please Complete Your Registration"); - if(user != 'Administrator'){ - d.no_cancel(); // Hide close image - $dh(page_body.wntoolbar.wrapper); - } - $($a(d.body,'div','', {margin:'8px', color:'#888'})).html('Company Name : '+locals['Control Panel']['Control Panel'].company_name); - - d.make_body( - [ - ['Data','Company Abbreviation'], - ['Select','Fiscal Year Start Date'], - ['Select','Default Currency'], - ['Button','Save'], - ]); - - //d.widgets['Save'].disabled = true; // disable Save button - pscript.make_dialog_field(d); - - // submit details - d.widgets['Save'].onclick = function() - { - d.widgets['Save'].set_working(); - - flag = pscript.validate_fields(d); - if(flag) - { - var args = [ - locals['Control Panel']['Control Panel'].company_name, - d.widgets['Company Abbreviation'].value, - d.widgets['Fiscal Year Start Date'].value, - d.widgets['Default Currency'].value - ]; - - $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){ - sys_defaults = r.message; - d.hide(); - $ds(page_body.wntoolbar.wrapper); - }); - } - } - d.show(); +pscript.complete_registration = function(is_complete) { + if(is_complete == 'No'){ + var d = new Dialog(400, 200, "Please Complete Your Registration"); + if(user != 'Administrator'){ + d.no_cancel(); // Hide close image + $dh(page_body.wntoolbar.wrapper); } + + 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 1134273490..1d1d1b2040 100644 --- a/home/page/event_updates/event_updates.py +++ b/erpnext/home/page/event_updates/event_updates.py @@ -24,7 +24,7 @@ def get_unread_messages(): # 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 @@ def get_status_details(arg=None): '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 @@ def get_setup_status(): header = webnotes.conn.get_value('Control Panel', None, 'client_name') or '' if header.startswith('
'\ - +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/search_criteria/bills_to_be_submitted/__init__.py b/erpnext/home/page/my_company/__init__.py similarity index 100% rename from home/search_criteria/bills_to_be_submitted/__init__.py rename to erpnext/home/page/my_company/__init__.py diff --git a/home/page/my_company/my_company.css b/erpnext/home/page/my_company/my_company.css similarity index 100% rename from home/page/my_company/my_company.css rename to erpnext/home/page/my_company/my_company.css diff --git a/home/page/my_company/my_company.html b/erpnext/home/page/my_company/my_company.html similarity index 100% rename from home/page/my_company/my_company.html rename to erpnext/home/page/my_company/my_company.html diff --git a/home/page/my_company/my_company.js b/erpnext/home/page/my_company/my_company.js similarity index 94% rename from home/page/my_company/my_company.js rename to erpnext/home/page/my_company/my_company.js index 9da7e9bd2d..40bf155585 100644 --- a/home/page/my_company/my_company.js +++ b/erpnext/home/page/my_company/my_company.js @@ -322,7 +322,7 @@ MemberProfile = function(parent, uid, member_item) { // show securty settings this.set_security = function() { - var d = new wn.widgets.Dialog({ + var sd = new wn.widgets.Dialog({ title: 'Set User Security', width: 500, fields: [ @@ -362,30 +362,72 @@ MemberProfile = function(parent, uid, member_item) { } ] }); - d.onshow = function() { - d.set_values({ + + me.sec_dialog = sd + + sd.onshow = function() { + me.sec_dialog.set_values({ restrict_ip: me.profile.restrict_ip || '', login_before: me.profile.login_before || '', login_after: me.profile.login_after || '', new_password: '' - }) - } - d.fields_dict.update.input.onclick = function() { + }); + }; + sd.fields_dict.update.input.onclick = function() { var btn = this; this.set_working(); - var args = d.get_values(); + var args = me.sec_dialog.get_values(); args.user = me.profile.name; - $c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) { - if(r.exc) { - msgprint(r.exc); + + if (args.new_password) { + var pass_d = new wn.widgets.Dialog({ + title: 'Your Password', + width: 300, + fields: [ + { + label: 'Please Enter Your Password', + description: "Your password is required to update the concerned user's password", + fieldtype: 'Password', + fieldname: 'sys_admin_pwd', + reqd: 1 + }, + + { + label: 'Continue', + fieldtype: 'Button', + fieldname: 'continue' + } + ] + }); + + pass_d.fields_dict.continue.input.onclick = function() { + btn.pwd_dialog.hide(); + args.sys_admin_pwd = btn.pwd_dialog.get_values().sys_admin_pwd; + btn.set_working(); + me.update_security(args); btn.done_working(); - return; } - $.extend(me.profile, d.get_values()); - d.hide(); - }); - } - d.show(); + + pass_d.show(); + btn.pwd_dialog = pass_d; + btn.done_working(); + } else { + btn.done_working(); + me.update_security(args); + } + }; + sd.show(); + } + + this.update_security = function(args) { + $c_page('home', 'my_company', 'update_security', JSON.stringify(args), function(r,rt) { + if(r.exc) { + msgprint(r.exc); + return; + } + me.sec_dialog.hide(); + $.extend(me.profile, me.sec_dialog.get_values()); + }); } // delete user diff --git a/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py similarity index 97% rename from home/page/my_company/my_company.py rename to erpnext/home/page/my_company/my_company.py index 5d5ed800a8..3ff1482e9f 100644 --- a/home/page/my_company/my_company.py +++ b/erpnext/home/page/my_company/my_company.py @@ -140,8 +140,7 @@ def update_security(args=''): if 'new_password' in args: if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')): import server_tools.gateway_utils - webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'])['message']) + webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd'])['message']) else: webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user'])) - - webnotes.msgprint('Settings Updated') \ No newline at end of file + else: webnotes.msgprint('Settings Updated') \ No newline at end of file diff --git a/home/page/my_company/my_company.txt b/erpnext/home/page/my_company/my_company.txt similarity index 100% rename from home/page/my_company/my_company.txt rename to erpnext/home/page/my_company/my_company.txt diff --git a/home/search_criteria/delivery_note_to_be_billed/__init__.py b/erpnext/home/page/profile_settings/__init__.py similarity index 100% rename from home/search_criteria/delivery_note_to_be_billed/__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 10b06d422a..425626b162 100644 --- a/home/page/profile_settings/profile_settings.js +++ b/erpnext/home/page/profile_settings/profile_settings.js @@ -97,7 +97,7 @@ MyProfile = function(wrapper) { ]); 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 56f7f15eb2..d1e091cad4 100644 --- a/home/page/profile_settings/profile_settings.py +++ b/erpnext/home/page/profile_settings/profile_settings.py @@ -2,7 +2,6 @@ import webnotes from webnotes.utils import load_json, cint, nowdate - def change_password(arg): """ Change password @@ -21,15 +20,40 @@ def change_password(arg): 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/delivery_note_to_be_submitted/__init__.py b/erpnext/home/search_criteria/__init__.py similarity index 100% rename from home/search_criteria/delivery_note_to_be_submitted/__init__.py rename to erpnext/home/search_criteria/__init__.py diff --git a/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py b/erpnext/home/search_criteria/bills_to_be_paid/__init__.py similarity index 100% rename from home/search_criteria/enquiry_quotations_to_be_sent/__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/enquiry_to_follow_up/__init__.py b/erpnext/home/search_criteria/bills_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/enquiry_to_follow_up/__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/indent_purchase_order_to_be_made/__init__.py b/erpnext/home/search_criteria/delivery_note_to_be_billed/__init__.py similarity index 100% rename from home/search_criteria/indent_purchase_order_to_be_made/__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/indent_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/indent_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/invoices_overdue/__init__.py b/erpnext/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py similarity index 100% rename from home/search_criteria/invoices_overdue/__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/invoices_to_be_submitted/__init__.py b/erpnext/home/search_criteria/enquiry_to_follow_up/__init__.py similarity index 100% rename from home/search_criteria/invoices_to_be_submitted/__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/invoices_to_receive_payment/__init__.py b/erpnext/home/search_criteria/indent_purchase_order_to_be_made/__init__.py similarity index 100% rename from home/search_criteria/invoices_to_receive_payment/__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/lead_to_follow_up/__init__.py b/erpnext/home/search_criteria/indent_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/lead_to_follow_up/__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/purchase_order_to_be_billed/__init__.py b/erpnext/home/search_criteria/invoices_overdue/__init__.py similarity index 100% rename from home/search_criteria/purchase_order_to_be_billed/__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/purchase_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/invoices_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/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/purchase_order_to_receive_items/__init__.py b/erpnext/home/search_criteria/invoices_to_receive_payment/__init__.py similarity index 100% rename from home/search_criteria/purchase_order_to_receive_items/__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/sales_order_overdue/__init__.py b/erpnext/home/search_criteria/lead_to_follow_up/__init__.py similarity index 100% rename from home/search_criteria/sales_order_overdue/__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/sales_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/sales_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/sales_order_to_be_delivered/__init__.py b/erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py similarity index 100% rename from home/search_criteria/sales_order_to_be_delivered/__init__.py rename to erpnext/home/search_criteria/purchase_order_to_be_submitted/__init__.py diff --git a/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt similarity index 100% rename from home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt rename to erpnext/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt diff --git a/home/search_criteria/sales_order_to_be_submitted/__init__.py b/erpnext/home/search_criteria/purchase_order_to_receive_items/__init__.py similarity index 100% rename from home/search_criteria/sales_order_to_be_submitted/__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/serial_no_amc_expiring_this_month/__init__.py b/erpnext/home/search_criteria/sales_order_overdue/__init__.py similarity index 100% rename from home/search_criteria/serial_no_amc_expiring_this_month/__init__.py rename to erpnext/home/search_criteria/sales_order_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/serial_no_warranty_expiring_this_month/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_billed/__init__.py similarity index 100% rename from home/search_criteria/serial_no_warranty_expiring_this_month/__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/task_open/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_delivered/__init__.py similarity index 100% rename from home/search_criteria/task_open/__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/hr/__init__.py b/erpnext/home/search_criteria/sales_order_to_be_submitted/__init__.py similarity index 100% rename from hr/__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/hr/doctype/__init__.py b/erpnext/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py similarity index 100% rename from hr/doctype/__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/hr/doctype/absent_days_detail/__init__.py b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py similarity index 100% rename from hr/doctype/absent_days_detail/__init__.py rename to erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py diff --git a/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt similarity index 100% rename from home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt rename to erpnext/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt diff --git a/hr/doctype/appraisal/__init__.py b/erpnext/home/search_criteria/task_open/__init__.py similarity index 100% rename from hr/doctype/appraisal/__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 93% 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 b3081bfb52..aed40029e2 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 03318a1c2d..0a365d10aa 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/doctype/appraisal_detail/__init__.py b/erpnext/hr/__init__.py similarity index 100% rename from hr/doctype/appraisal_detail/__init__.py rename to erpnext/hr/__init__.py diff --git a/hr/doctype/attendance/__init__.py b/erpnext/hr/doctype/__init__.py similarity index 100% rename from hr/doctype/attendance/__init__.py rename to erpnext/hr/doctype/__init__.py diff --git a/hr/doctype/attendance_control_panel/__init__.py b/erpnext/hr/doctype/absent_days_detail/__init__.py similarity index 100% rename from hr/doctype/attendance_control_panel/__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/branch/__init__.py b/erpnext/hr/doctype/appraisal/__init__.py similarity index 100% rename from hr/doctype/branch/__init__.py rename to erpnext/hr/doctype/appraisal/__init__.py diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js new file mode 100644 index 0000000000..b2683d82de --- /dev/null +++ b/erpnext/hr/doctype/appraisal/appraisal.js @@ -0,0 +1,150 @@ +cur_frm.add_fetch('employee', 'company', 'company'); + +cur_frm.cscript.onload = function(doc,cdt,cdn){ + if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); + if(doc.employee) cur_frm.cscript.employee(doc,cdt,cdn); + if(doc.amended_from && doc.__islocal) cur_frm.cscript.refresh_appraisal_details(doc, cdt, cdn); +} + +cur_frm.cscript.refresh = function(doc,cdt,cdn){ + if(user == doc.kra_approver && doc.status == 'Submitted') unhide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + else hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + + if(!doc.docstatus) unhide_field('Fetch Template'); + else hide_field('Fetch Template'); +} + + +cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){ + var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); + for(var i = 0; iYou wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?
'], + ['HTML', 'Response', '
'], + ['HTML', 'Declare Completed', '
'] + ]); + + var declare_completed_btn1 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); + declare_completed_btn1.innerHTML = 'Yes'; + declare_completed_btn1.onclick = function(){ declare_completed_dialog.add(); } + + var declare_completed_btn2 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button'); + declare_completed_btn2.innerHTML = 'No'; + $y(declare_completed_btn2,{marginLeft:'4px'}); + declare_completed_btn2.onclick = function(){ declare_completed_dialog.hide();} + + declare_completed_dialog.onshow = function() { + $i('declare_completed_dialog_response').innerHTML = ''; + } + + declare_completed_dialog.refresh_dt = function(){ + cur_frm.cscript.refresh(this.doc, this.cdt, this.cdn); + msgprint("refersh done"); + $c('webnotes.widgets.form.form_header.refresh_labels',this.doc,function(r,rt){}); + } + + declare_completed_dialog.add = function() { + // sending... + $i('declare_completed_dialog_response').innerHTML = 'Processing...'; + var m_arg = user+ '~~' + this.msg_nm_lst; + + $c_obj(make_doclist(this.doc.doctype, this.doc.name),'declare_completed','', function(r,rt){ + + if(r.message.status == 'Completed'){ + $i('declare_completed_dialog_response').innerHTML = 'Done'; + refresh_field('status'); + declare_completed_dialog.refresh_dt(); + hide_field(['Update', 'Declare Completed', 'Calculate Total Score']); + declare_completed_dialog.hide(); + } + else if(r.message.status == 'Incomplete'){ + $i('declare_completed_dialog_response').innerHTML = 'Incomplete Appraisal'; + } + else if(r.message.status == 'No Score'){ + $i('declare_completed_dialog_response').innerHTML = 'Calculate total score'; + } + }); + } + } + + if(!declare_completed_dialog){ + set_declare_completed_dialog(); + } + declare_completed_dialog.doc = doc; + declare_completed_dialog.cdt = cdt; + declare_completed_dialog.cdn = cdn; + declare_completed_dialog.show(); +} + +cur_frm.cscript.score = function(doc,cdt,cdn){ + var d = locals[cdt][cdn]; + if (d.score){ + if (flt(d.score) > 5) { + msgprint("Score must be less than or equal to 5"); + d.score = 0; + refresh_field('score', d.name, 'appraisal_details'); + } + total = flt(d.per_weightage*d.score)/100; + d.score_earned = total.toPrecision(2); + refresh_field('score_earned', d.name, 'appraisal_details'); + } + else{ + d.score_earned = ''; + refresh_field('score_earned', d.name, 'appraisal_details'); + } + cur_frm.cscript.calculate_total(doc,cdt,cdn); +} + +cur_frm.cscript.calculate_total = function(doc,cdt,cdn){ + var val = getchildren('Appraisal Detail', doc.name, 'appraisal_details', doc.doctype); + var total =0; + for(var i = 0; i getdate(self.doc.end_date): + msgprint("End Date can not be less than Start Date") + raise Exception + + def validate_existing_appraisal(self): + chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date)) + if chk: + msgprint("You have already created Appraisal "+cstr(chk[0][0])+" in the current date range for employee "+cstr(self.doc.employee_name)) + raise Exception + + def validate_curr_appraisal(self): + for d in getlist(self.doclist, 'appraisal_details'): + if d.target_achieved or d.score: + if self.doc.status == 'Draft': + msgprint("Target achieved or Score can be added only for submitted Appraisal") + raise Exception + elif self.doc.status == 'Submitted' and session['user'] != self.doc.kra_approver: + msgprint("Target achieved or Score can be added only by Appraisal Approver") + raise Exception + + + def validate_fiscal_year(self): + fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year) + ysd=fy and fy[0][0] or "" + yed=add_days(str(ysd),365) + if str(self.doc.start_date) < str(ysd) or str(self.doc.start_date) > str(yed) or str(self.doc.end_date) < str(ysd) or str(self.doc.end_date) > str(yed): + msgprint("Appraisal date range is not within the Fiscal Year selected") + raise Exception + + def validate(self): + self.validate_dates() + self.validate_existing_appraisal() + self.validate_curr_appraisal() + self.validate_fiscal_year() + + def set_approver(self): + ret={} + approver_lst =[] + emp_nm = self.get_employee_name() + approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self) + if approver_lst1: + approver_lst=approver_lst1 + else: + approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")] + ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)} + return ret + + def calculate_total(self): + total = 0 + for d in getlist(self.doclist, 'appraisal_details'): + if d.score: + total = total + flt(d.score_earned) + ret={'total_score':flt(total)} + return ret + + def declare_completed(self): + ret={} + for d in getlist(self.doclist, 'appraisal_details'): + if not d.target_achieved or not d.score or not d.score_earned: + msgprint("Please add 'Target Achieved' and 'Score' for all KPI") + ret = {'status':'Incomplete'} + return ret + + if not self.doc.total_score: + msgprint("Please calculate total score using button 'Calculate Total Score'") + ret = {'status':'No Score'} + return ret + self.update_appraisal() + #set(self.doc, 'status', 'Completed') + ret = {'status':'Completed'} + return ret + + def update_appraisal(self): + for d in getlist(self.doclist, 'appraisal_details'): + if not d.kra or not d.per_weightage: + msgprint("Please remove the extra blank row added") + raise Exception + d.save() + if self.doc.total_score: + set(self.doc,'total_score',self.doc.total_score) + + def on_update(self): + set(self.doc, 'status', 'Draft') + + def validate_total_weightage(self): + total_w = 0 + for d in getlist(self.doclist, 'appraisal_details'): + total_w = flt(total_w) + flt(d.per_weightage) + + if flt(total_w)>100 or flt(total_w)<100: + msgprint("Total of weightage assigned to KPI is "+cstr(total_w)+".It should be 100(%)") + raise Exception + + def validate_appraisal_detail(self): + if not self.doc.kra_approver: + msgprint("Please mention the name of Approver") + raise Exception + + if not getlist(self.doclist, 'appraisal_details'): + msgprint("Please add KRA Details") + raise Exception + + self.validate_total_weightage() + + def on_submit(self): + self.validate_appraisal_detail() + set(self.doc, 'status', 'Submitted') + + def on_cancel(self): + set(self.doc, 'status', 'Cancelled') diff --git a/hr/doctype/appraisal/appraisal.txt b/erpnext/hr/doctype/appraisal/appraisal.txt similarity index 93% rename from hr/doctype/appraisal/appraisal.txt rename to erpnext/hr/doctype/appraisal/appraisal.txt index 3521c6f867..e2abb35d33 100644 --- a/hr/doctype/appraisal/appraisal.txt +++ b/erpnext/hr/doctype/appraisal/appraisal.txt @@ -5,16 +5,17 @@ { 'creation': '2010-09-01 15:48:05', 'docstatus': 0, - 'modified': '2011-06-27 14:39:10', + 'modified': '2011-09-22 10:59:43', 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, # These values are common for all DocType { - '_last_update': '1308808105', + '_last_update': '1316075905', 'autoname': 'APRSL.#####', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'module': 'HR', 'name': '__common__', @@ -22,7 +23,7 @@ 'section_style': 'Simple', 'server_code_error': ' ', 'show_in_menu': 0, - 'version': 160 + 'version': 161 }, # These values are common for all DocField @@ -56,7 +57,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 1, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -66,7 +66,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 2, 'permlevel': 1, 'role': 'System Manager' }, @@ -77,7 +76,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 3, 'permlevel': 0, 'role': 'System Manager', 'submit': 1, @@ -87,7 +85,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 4, 'permlevel': 1, 'role': 'System Manager' }, @@ -98,7 +95,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 5, 'permlevel': 0, 'role': 'HR Manager', 'submit': 1, @@ -111,7 +107,6 @@ 'cancel': 1, 'create': 1, 'doctype': 'DocPerm', - 'idx': 6, 'permlevel': 0, 'role': 'HR User', 'submit': 1, @@ -121,7 +116,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 7, 'permlevel': 1, 'role': 'HR Manager' }, @@ -129,7 +123,6 @@ # DocPerm { 'doctype': 'DocPerm', - 'idx': 8, 'permlevel': 1, 'role': 'HR User' }, @@ -138,7 +131,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 1, 'label': 'Employee Details', 'oldfieldtype': 'Section Break', 'permlevel': 0 @@ -151,9 +143,9 @@ 'doctype': 'DocField', 'fieldname': 'status', 'fieldtype': 'Select', - 'idx': 2, 'in_filter': 1, 'label': 'Status', + 'no_copy': 1, 'oldfieldname': 'status', 'oldfieldtype': 'Select', 'options': '\nDraft\nSubmitted\nCompleted\nCancelled', @@ -168,7 +160,6 @@ 'doctype': 'DocField', 'fieldname': 'employee', 'fieldtype': 'Link', - 'idx': 3, 'in_filter': 1, 'label': 'Employee', 'oldfieldname': 'employee', @@ -185,7 +176,6 @@ 'doctype': 'DocField', 'fieldname': 'employee_name', 'fieldtype': 'Data', - 'idx': 4, 'in_filter': 1, 'label': 'Employee Name', 'oldfieldname': 'employee_name', @@ -198,7 +188,6 @@ 'doctype': 'DocField', 'fieldname': 'fiscal_year', 'fieldtype': 'Select', - 'idx': 5, 'in_filter': 1, 'label': 'Fiscal Year', 'oldfieldname': 'fiscal_year', @@ -213,7 +202,6 @@ 'doctype': 'DocField', 'fieldname': 'company', 'fieldtype': 'Select', - 'idx': 6, 'in_filter': 1, 'label': 'Company', 'oldfieldname': 'company', @@ -227,7 +215,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Column Break', - 'idx': 7, 'oldfieldtype': 'Column Break', 'permlevel': 0, 'width': '50%' @@ -238,7 +225,6 @@ 'doctype': 'DocField', 'fieldname': 'start_date', 'fieldtype': 'Date', - 'idx': 8, 'in_filter': 1, 'label': 'Start Date', 'oldfieldname': 'start_date', @@ -252,7 +238,6 @@ 'doctype': 'DocField', 'fieldname': 'end_date', 'fieldtype': 'Date', - 'idx': 9, 'in_filter': 1, 'label': 'End Date', 'oldfieldname': 'end_date', @@ -267,7 +252,6 @@ 'doctype': 'DocField', 'fieldname': 'kra_approver', 'fieldtype': 'Select', - 'idx': 10, 'in_filter': 0, 'label': 'Approver', 'oldfieldname': 'kra_approver', @@ -282,7 +266,6 @@ 'fieldname': 'amended_from', 'fieldtype': 'Data', 'hidden': 1, - 'idx': 11, 'label': 'Amended From', 'no_copy': 1, 'oldfieldname': 'amended_from', @@ -299,7 +282,6 @@ 'fieldname': 'amendment_date', 'fieldtype': 'Date', 'hidden': 1, - 'idx': 12, 'label': 'Amendment Date', 'no_copy': 1, 'oldfieldname': 'amendment_date', @@ -316,7 +298,6 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 13, 'label': 'Declare Completed', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -327,7 +308,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Section Break', - 'idx': 14, 'oldfieldtype': 'Section Break', 'options': 'Simple', 'permlevel': 0 @@ -340,7 +320,6 @@ 'doctype': 'DocField', 'fieldname': 'kra_template', 'fieldtype': 'Link', - 'idx': 15, 'label': 'KRA Template', 'oldfieldname': 'kra_template', 'oldfieldtype': 'Link', @@ -352,7 +331,6 @@ { 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 16, 'label': 'Fetch Template', 'oldfieldtype': 'Button', 'options': 'fetch_kra', @@ -366,7 +344,6 @@ 'doctype': 'DocField', 'fieldtype': 'Button', 'hidden': 1, - 'idx': 17, 'label': 'Update', 'oldfieldtype': 'Button', 'permlevel': 0, @@ -380,7 +357,6 @@ 'doctype': 'DocField', 'fieldname': 'appraisal_details', 'fieldtype': 'Table', - 'idx': 18, 'label': 'Appraisal Details', 'oldfieldname': 'appraisal_details', 'oldfieldtype': 'Table', @@ -393,7 +369,6 @@ 'allow_on_submit': 1, 'doctype': 'DocField', 'fieldtype': 'Button', - 'idx': 19, 'label': 'Calculate Total Score', 'oldfieldtype': 'Button', 'options': 'calculate_total', @@ -405,8 +380,7 @@ 'doctype': 'DocField', 'fieldname': 'total_score', 'fieldtype': 'Currency', - 'idx': 20, - 'label': 'Total Score', + 'label': 'Total Score (Out of 5)', 'no_copy': 1, 'oldfieldname': 'total_score', 'oldfieldtype': 'Currency', diff --git a/hr/doctype/chapter_vi_a_detail/__init__.py b/erpnext/hr/doctype/appraisal_detail/__init__.py similarity index 100% rename from hr/doctype/chapter_vi_a_detail/__init__.py rename to erpnext/hr/doctype/appraisal_detail/__init__.py diff --git a/hr/doctype/appraisal_detail/appraisal_detail.txt b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt similarity index 90% rename from hr/doctype/appraisal_detail/appraisal_detail.txt rename to erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt index fa57bef30e..771bf4e201 100644 --- a/hr/doctype/appraisal_detail/appraisal_detail.txt +++ b/erpnext/hr/doctype/appraisal_detail/appraisal_detail.txt @@ -5,8 +5,8 @@ { 'creation': '2010-09-01 15:48:05', 'docstatus': 0, - 'modified': '2010-09-20 14:06:57', - 'modified_by': 'rahul@webnotestech.com', + 'modified': '2011-09-22 10:45:37', + 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, @@ -14,13 +14,14 @@ { 'autoname': 'APRSLD.#####', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'istable': 1, 'module': 'HR', 'name': '__common__', 'section_style': 'Simple', 'server_code_error': ' ', - 'version': 13 + 'version': 15 }, # These values are common for all DocField @@ -45,7 +46,6 @@ 'doctype': 'DocField', 'fieldname': 'kra', 'fieldtype': 'Small Text', - 'idx': 1, 'label': 'KRA', 'oldfieldname': 'kra', 'oldfieldtype': 'Small Text', @@ -58,7 +58,6 @@ 'doctype': 'DocField', 'fieldname': 'per_weightage', 'fieldtype': 'Currency', - 'idx': 2, 'label': 'Weightage (%)', 'oldfieldname': 'per_weightage', 'oldfieldtype': 'Currency', @@ -72,7 +71,6 @@ 'doctype': 'DocField', 'fieldname': 'target_achieved', 'fieldtype': 'Small Text', - 'idx': 3, 'label': 'Target Achieved', 'no_copy': 1, 'oldfieldname': 'target_achieved', @@ -86,15 +84,15 @@ 'colour': 'White:FFF', 'doctype': 'DocField', 'fieldname': 'score', - 'fieldtype': 'Select', - 'idx': 4, + 'fieldtype': 'Currency', 'label': 'Score (0-5)', 'no_copy': 1, 'oldfieldname': 'score', 'oldfieldtype': 'Select', 'options': '\n0\n1\n2\n3\n4\n5', 'permlevel': 0, - 'trigger': 'Client' + 'trigger': 'Client', + 'width': '60px' }, # DocField @@ -102,7 +100,6 @@ 'doctype': 'DocField', 'fieldname': 'score_earned', 'fieldtype': 'Currency', - 'idx': 5, 'label': 'Score Earned', 'no_copy': 1, 'oldfieldname': 'score_earned', diff --git a/hr/doctype/declaration_detail/__init__.py b/erpnext/hr/doctype/attendance/__init__.py similarity index 100% rename from hr/doctype/declaration_detail/__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/deduction_detail/__init__.py b/erpnext/hr/doctype/attendance_control_panel/__init__.py similarity index 100% rename from hr/doctype/deduction_detail/__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/deduction_type/__init__.py b/erpnext/hr/doctype/branch/__init__.py similarity index 100% rename from hr/doctype/deduction_type/__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/department/__init__.py b/erpnext/hr/doctype/chapter_vi_a_detail/__init__.py similarity index 100% rename from hr/doctype/department/__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/designation/__init__.py b/erpnext/hr/doctype/declaration_detail/__init__.py similarity index 100% rename from hr/doctype/designation/__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/earn_deduction_detail/__init__.py b/erpnext/hr/doctype/deduction_detail/__init__.py similarity index 100% rename from hr/doctype/earn_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/earning_detail/__init__.py b/erpnext/hr/doctype/deduction_type/__init__.py similarity index 100% rename from hr/doctype/earning_detail/__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/earning_type/__init__.py b/erpnext/hr/doctype/department/__init__.py similarity index 100% rename from hr/doctype/earning_type/__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/educational_qualifications/__init__.py b/erpnext/hr/doctype/designation/__init__.py similarity index 100% rename from hr/doctype/educational_qualifications/__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/educational_qualifications_detail/__init__.py b/erpnext/hr/doctype/earn_deduction_detail/__init__.py similarity index 100% rename from hr/doctype/educational_qualifications_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/employee/__init__.py b/erpnext/hr/doctype/earning_detail/__init__.py similarity index 100% rename from hr/doctype/employee/__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/employee_profile/__init__.py b/erpnext/hr/doctype/earning_type/__init__.py similarity index 100% rename from hr/doctype/employee_profile/__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/employment_type/__init__.py b/erpnext/hr/doctype/educational_qualifications/__init__.py similarity index 100% rename from hr/doctype/employment_type/__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/expense_type/__init__.py b/erpnext/hr/doctype/educational_qualifications_detail/__init__.py similarity index 100% rename from hr/doctype/expense_type/__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/expense_voucher/__init__.py b/erpnext/hr/doctype/employee/__init__.py similarity index 100% rename from hr/doctype/expense_voucher/__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 01ff32df66..ba602cf575 100644 --- a/hr/doctype/employee/employee.py +++ b/erpnext/hr/doctype/employee/employee.py @@ -46,7 +46,7 @@ class DocType: # 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/expense_voucher_detail/__init__.py b/erpnext/hr/doctype/employee_profile/__init__.py similarity index 100% rename from hr/doctype/expense_voucher_detail/__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/experience_in_company_detail/__init__.py b/erpnext/hr/doctype/employment_type/__init__.py similarity index 100% rename from hr/doctype/experience_in_company_detail/__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/grade/__init__.py b/erpnext/hr/doctype/expense_type/__init__.py similarity index 100% rename from hr/doctype/grade/__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/holiday_list/__init__.py b/erpnext/hr/doctype/expense_voucher/__init__.py similarity index 100% rename from hr/doctype/holiday_list/__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/holiday_list_detail/__init__.py b/erpnext/hr/doctype/expense_voucher_detail/__init__.py similarity index 100% rename from hr/doctype/holiday_list_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/invest_80_declaration_detail/__init__.py b/erpnext/hr/doctype/experience_in_company_detail/__init__.py similarity index 100% rename from hr/doctype/invest_80_declaration_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/it_checklist/__init__.py b/erpnext/hr/doctype/grade/__init__.py similarity index 100% rename from hr/doctype/it_checklist/__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/kra_sheet/__init__.py b/erpnext/hr/doctype/holiday_list/__init__.py similarity index 100% rename from hr/doctype/kra_sheet/__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/kra_template/__init__.py b/erpnext/hr/doctype/holiday_list_detail/__init__.py similarity index 100% rename from hr/doctype/kra_template/__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/leave_allocation/__init__.py b/erpnext/hr/doctype/invest_80_declaration_detail/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from hr/doctype/leave_allocation/__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/leave_application/__init__.py b/erpnext/hr/doctype/it_checklist/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from hr/doctype/leave_application/__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 99% rename from hr/doctype/it_checklist/it_checklist.py rename to erpnext/hr/doctype/it_checklist/it_checklist.py index abed301573..182e171746 100644 --- a/hr/doctype/it_checklist/it_checklist.py +++ b/erpnext/hr/doctype/it_checklist/it_checklist.py @@ -411,9 +411,3 @@ class DocType: new_tot_income = cint(self.doc.tax_tot_income) + cint(self.doc.edu_cess) - (cint(ret_income_tax[0][0]) or 0) self.doc.tax_per_month = new_tot_income/cint(self.doc.rem_months) - - # on update - def on_update(self): - obj = get_obj('Feed Control', 'Feed Control') - - obj.make_feed(self.doc) \ No newline at end of file diff --git a/hr/doctype/it_checklist/it_checklist.txt b/erpnext/hr/doctype/it_checklist/it_checklist.txt similarity index 100% rename from hr/doctype/it_checklist/it_checklist.txt rename to erpnext/hr/doctype/it_checklist/it_checklist.txt diff --git a/hr/doctype/leave_control_panel/__init__.py b/erpnext/hr/doctype/kra_sheet/__init__.py similarity index 100% rename from hr/doctype/leave_control_panel/__init__.py rename to erpnext/hr/doctype/kra_sheet/__init__.py diff --git a/hr/doctype/kra_sheet/kra_sheet.txt b/erpnext/hr/doctype/kra_sheet/kra_sheet.txt similarity index 100% rename from hr/doctype/kra_sheet/kra_sheet.txt rename to erpnext/hr/doctype/kra_sheet/kra_sheet.txt diff --git a/hr/doctype/leave_type/__init__.py b/erpnext/hr/doctype/kra_template/__init__.py similarity index 100% rename from hr/doctype/leave_type/__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/other_income_detail/__init__.py b/erpnext/hr/doctype/leave_allocation/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from hr/doctype/other_income_detail/__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/payroll_rule/__init__.py b/erpnext/hr/doctype/leave_application/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from hr/doctype/payroll_rule/__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/previous_experience_detail/__init__.py b/erpnext/hr/doctype/leave_control_panel/__init__.py similarity index 100% rename from hr/doctype/previous_experience_detail/__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/professional_training_details/__init__.py b/erpnext/hr/doctype/leave_type/__init__.py similarity index 100% rename from hr/doctype/professional_training_details/__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/salary_slip/__init__.py b/erpnext/hr/doctype/other_income_detail/__init__.py similarity index 100% rename from hr/doctype/salary_slip/__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/salary_structure/__init__.py b/erpnext/hr/doctype/payroll_rule/__init__.py similarity index 100% rename from hr/doctype/salary_structure/__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/ss_deduction_detail/__init__.py b/erpnext/hr/doctype/previous_experience_detail/__init__.py similarity index 100% rename from hr/doctype/ss_deduction_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/ss_earning_detail/__init__.py b/erpnext/hr/doctype/professional_training_details/__init__.py similarity index 100% rename from hr/doctype/ss_earning_detail/__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/page/__init__.py b/erpnext/hr/doctype/salary_slip/__init__.py similarity index 100% rename from hr/page/__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/search_criteria/__init__.py b/erpnext/hr/doctype/salary_structure/__init__.py similarity index 100% rename from hr/search_criteria/__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/search_criteria/employee_appraisals/__init__.py b/erpnext/hr/doctype/ss_deduction_detail/__init__.py similarity index 100% rename from hr/search_criteria/employee_appraisals/__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/search_criteria/employee_details/__init__.py b/erpnext/hr/doctype/ss_earning_detail/__init__.py similarity index 100% rename from hr/search_criteria/employee_details/__init__.py rename to erpnext/hr/doctype/ss_earning_detail/__init__.py diff --git a/hr/doctype/ss_earning_detail/ss_earning_detail.txt b/erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt similarity index 100% rename from hr/doctype/ss_earning_detail/ss_earning_detail.txt rename to erpnext/hr/doctype/ss_earning_detail/ss_earning_detail.txt diff --git a/hr/search_criteria/employee_in_company_experience/__init__.py b/erpnext/hr/page/__init__.py similarity index 100% rename from hr/search_criteria/employee_in_company_experience/__init__.py rename to erpnext/hr/page/__init__.py diff --git a/hr/search_criteria/employee_information/__init__.py b/erpnext/hr/search_criteria/__init__.py similarity index 100% rename from hr/search_criteria/employee_information/__init__.py rename to erpnext/hr/search_criteria/__init__.py diff --git a/hr/search_criteria/employees_birthday/__init__.py b/erpnext/hr/search_criteria/employee_appraisals/__init__.py similarity index 100% rename from hr/search_criteria/employees_birthday/__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/employeewise_balance_leave_report/__init__.py b/erpnext/hr/search_criteria/employee_details/__init__.py similarity index 100% rename from hr/search_criteria/employeewise_balance_leave_report/__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/employeewise_leave_transaction_details/__init__.py b/erpnext/hr/search_criteria/employee_in_company_experience/__init__.py similarity index 100% rename from hr/search_criteria/employeewise_leave_transaction_details/__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/expense_vouchers/__init__.py b/erpnext/hr/search_criteria/employee_information/__init__.py similarity index 100% rename from hr/search_criteria/expense_vouchers/__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/monthly_attendance_details/__init__.py b/erpnext/hr/search_criteria/employees_birthday/__init__.py similarity index 100% rename from hr/search_criteria/monthly_attendance_details/__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/monthly_salary_register/__init__.py b/erpnext/hr/search_criteria/employeewise_balance_leave_report/__init__.py similarity index 100% rename from hr/search_criteria/monthly_salary_register/__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/new_or_left_employees_for_a_month/__init__.py b/erpnext/hr/search_criteria/employeewise_leave_transaction_details/__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/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/pending_appraisals/__init__.py b/erpnext/hr/search_criteria/expense_vouchers/__init__.py similarity index 100% rename from hr/search_criteria/pending_appraisals/__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/pending_expense_vouchers/__init__.py b/erpnext/hr/search_criteria/monthly_attendance_details/__init__.py similarity index 100% rename from hr/search_criteria/pending_expense_vouchers/__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/salary_register/__init__.py b/erpnext/hr/search_criteria/monthly_salary_register/__init__.py similarity index 100% rename from hr/search_criteria/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/salary_slips/__init__.py b/erpnext/hr/search_criteria/new_or_left_employees_for_a_month/__init__.py similarity index 100% rename from hr/search_criteria/salary_slips/__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/salary_structure_details/__init__.py b/erpnext/hr/search_criteria/pending_appraisals/__init__.py similarity index 100% rename from hr/search_criteria/salary_structure_details/__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/knowledge_base/__init__.py b/erpnext/hr/search_criteria/pending_expense_vouchers/__init__.py similarity index 100% rename from knowledge_base/__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/knowledge_base/doctype/__init__.py b/erpnext/hr/search_criteria/salary_register/__init__.py similarity index 100% rename from knowledge_base/doctype/__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/knowledge_base/doctype/answer/__init__.py b/erpnext/hr/search_criteria/salary_slips/__init__.py similarity index 100% rename from knowledge_base/doctype/answer/__init__.py rename to erpnext/hr/search_criteria/salary_slips/__init__.py diff --git a/hr/search_criteria/salary_slips/salary_slips.txt b/erpnext/hr/search_criteria/salary_slips/salary_slips.txt similarity index 100% rename from hr/search_criteria/salary_slips/salary_slips.txt rename to erpnext/hr/search_criteria/salary_slips/salary_slips.txt diff --git a/knowledge_base/doctype/question/__init__.py b/erpnext/hr/search_criteria/salary_structure_details/__init__.py similarity index 100% rename from knowledge_base/doctype/question/__init__.py rename to erpnext/hr/search_criteria/salary_structure_details/__init__.py diff --git a/hr/search_criteria/salary_structure_details/salary_structure_details.txt b/erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt similarity index 100% rename from hr/search_criteria/salary_structure_details/salary_structure_details.txt rename to erpnext/hr/search_criteria/salary_structure_details/salary_structure_details.txt diff --git a/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt b/erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt similarity index 100% rename from knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt rename to erpnext/knowledge_base/Module Def/Knowledge Base/Knowledge Base.txt diff --git a/knowledge_base/doctype/question_control/__init__.py b/erpnext/knowledge_base/__init__.py similarity index 100% rename from knowledge_base/doctype/question_control/__init__.py rename to erpnext/knowledge_base/__init__.py diff --git a/knowledge_base/doctype/question_tag/__init__.py b/erpnext/knowledge_base/doctype/__init__.py similarity index 100% rename from knowledge_base/doctype/question_tag/__init__.py rename to erpnext/knowledge_base/doctype/__init__.py diff --git a/knowledge_base/page/__init__.py b/erpnext/knowledge_base/doctype/answer/__init__.py similarity index 100% rename from knowledge_base/page/__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/page/question_view/__init__.py b/erpnext/knowledge_base/doctype/question/__init__.py similarity index 100% rename from knowledge_base/page/question_view/__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/page/questions/__init__.py b/erpnext/knowledge_base/doctype/question_control/__init__.py similarity index 100% rename from knowledge_base/page/questions/__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/patches/__init__.py b/erpnext/knowledge_base/doctype/question_tag/__init__.py similarity index 100% rename from patches/__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/patches/old_patches/__init__.py b/erpnext/knowledge_base/page/__init__.py similarity index 100% rename from patches/old_patches/__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/production/__init__.py b/erpnext/knowledge_base/page/question_view/__init__.py similarity index 100% rename from production/__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/production/doctype/__init__.py b/erpnext/knowledge_base/page/questions/__init__.py similarity index 100% rename from production/doctype/__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/production/doctype/bill_of_materials/__init__.py b/erpnext/patches/__init__.py similarity index 100% rename from production/doctype/bill_of_materials/__init__.py rename to erpnext/patches/__init__.py diff --git a/erpnext/patches/delivery_billing_status_patch.py b/erpnext/patches/delivery_billing_status_patch.py new file mode 100644 index 0000000000..1fcd8bfdda --- /dev/null +++ b/erpnext/patches/delivery_billing_status_patch.py @@ -0,0 +1,55 @@ +import webnotes +sql = webnotes.conn.sql + +test=1 + +# Update SO and DN Detail +#-------------------------- +def update_delivered_billed_qty(): + # update billed amt in item table in so and dn + sql(""" update `tabSales Order Detail` so + set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'), + delivered_qty = (select sum(qty) from `tabDelivery Note Detail` where `prevdoc_detail_docname`= so.name and docstatus=1 and parent not like 'old%%'), + modified = now() + where docstatus = 1 + """) + + sql(""" update `tabDelivery Note Detail` dn + set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), + modified = now() + where docstatus = 1 + """) + +# update SO +#--------------- +def update_percent(): + # calculate % billed based on item table + sql(""" update `tabSales Order` so + set per_delivered = (select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 from `tabSales Order Detail` where parent=so.name), + per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), + modified = now() + where docstatus = 1 + """) + + # update DN + # --------- + sql(""" update `tabDelivery Note` dn + set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), + modified = now() + where docstatus=1 + """) + +# update delivery/billing status +#------------------------------- +def update_status(): + sql("""update `tabSales Order` set delivery_status = if(ifnull(per_delivered,0) < 0.001, 'Not Delivered', + if(per_delivered >= 99.99, 'Fully Delivered', 'Partly Delivered'))""") + sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', + if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") + sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed', + if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""") + +def run_patch(): + update_delivered_billed_qty() + update_percent() + update_status() diff --git a/patches/erpnext_structure_cleanup.py b/erpnext/patches/erpnext_structure_cleanup.py similarity index 100% rename from patches/erpnext_structure_cleanup.py rename to erpnext/patches/erpnext_structure_cleanup.py diff --git a/patches/index_patch.py b/erpnext/patches/index_patch.py similarity index 100% rename from patches/index_patch.py rename to erpnext/patches/index_patch.py diff --git a/production/doctype/bom_control/__init__.py b/erpnext/patches/old_patches/__init__.py similarity index 100% rename from production/doctype/bom_control/__init__.py rename to erpnext/patches/old_patches/__init__.py diff --git a/patches/old_patches/customer_address.py b/erpnext/patches/old_patches/customer_address.py similarity index 100% rename from patches/old_patches/customer_address.py rename to erpnext/patches/old_patches/customer_address.py diff --git a/patches/old_patches/doctype_permission_patch.py b/erpnext/patches/old_patches/doctype_permission_patch.py similarity index 100% rename from patches/old_patches/doctype_permission_patch.py rename to erpnext/patches/old_patches/doctype_permission_patch.py diff --git a/patches/old_patches/feed_patch.py b/erpnext/patches/old_patches/feed_patch.py similarity index 100% rename from patches/old_patches/feed_patch.py rename to erpnext/patches/old_patches/feed_patch.py diff --git a/patches/old_patches/patch_1.py b/erpnext/patches/old_patches/patch_1.py similarity index 100% rename from patches/old_patches/patch_1.py rename to erpnext/patches/old_patches/patch_1.py diff --git a/patches/old_patches/replacecode.py b/erpnext/patches/old_patches/replacecode.py similarity index 100% rename from patches/old_patches/replacecode.py rename to erpnext/patches/old_patches/replacecode.py diff --git a/patches/patch.py b/erpnext/patches/patch.py similarity index 63% rename from patches/patch.py rename to erpnext/patches/patch.py index cf9774bffe..a3093c1d2d 100644 --- a/patches/patch.py +++ b/erpnext/patches/patch.py @@ -1,7 +1,7 @@ # REMEMBER to update this # ======================== -last_patch = 355 +last_patch = 384 #------------------------------------------- @@ -251,6 +251,8 @@ def execute(patch_no): reload_doc('stock','doctype','item_customer_detail') elif patch_no == 344: sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'") + reload_doc('stock', 'doctype', 'delivery_note_detail') + reload_doc('stock', 'doctype', 'item_customer_detail') elif patch_no == 345: # rerun 343 (merge confict) reload_doc('stock','doctype','item_customer_detail') @@ -289,9 +291,19 @@ def execute(patch_no): ch.format = 'Delivery Note Packing List Wise' ch.save(1) elif patch_no == 353: - reload_doc('hr', 'doctype', 'salary_manager') + reload_doc('core', 'doctype', 'doctype') + sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'") elif patch_no == 354: - reload_doc('setup', 'doctype','feature_setup') + reload_doc('stock', 'doctype', 'delivery_note') + reload_doc('stock', 'doctype', 'delivery_note_detail') + elif patch_no == 355: + sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'") + elif patch_no == 356: + sql("update `tabDocField` set print_hide =1 where fieldname = 'print_packing_slip' and parent = 'Delivery Note'") + elif patch_no == 357: + reload_doc('hr', 'doctype', 'salary_manager') + elif patch_no == 358: + reload_doc('setup', 'doctype','features_setup') reload_doc('stock','doctype','item') sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'") rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") @@ -300,7 +312,145 @@ def execute(patch_no): for d in rs: m.fields[d[0]] = 1 m.save() - elif patch_no == 355: + elif patch_no == 359: reload_doc('hr', 'doctype', 'salary_slip') delete_doc('DocType', 'Salary Control Panel') + elif patch_no == 360: + sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'") + elif patch_no == 361: + sql("update `tabModule Def Item` set doc_name = 'GL Entry' where display_name in ('Lease Agreement List', 'Lease Monthly Future Installment Inflows', 'Lease Overdue Age Wise', 'Lease Overdue List', 'Lease Receipts Client Wise', 'Lease Receipt Summary Month Wise', 'Lease Yearly Future Installment Inflows') and parent = 'Accounts'") + elif patch_no == 362: + sql("update `tabDocField` set no_copy = 1 where fieldname in ('amended_from', 'amendment_date', 'file_list', 'naming_series', 'status')") + elif patch_no == 363: + reload_doc('accounts', 'search_criteria', 'voucher_wise_tax_details') + reload_doc('accounts', 'Module Def', 'Accounts') + mappers = sql("select name, module from `tabDocType Mapper`") + for d in mappers: + if d[0] and d[1]: + reload_doc(d[1].lower(), 'DocType Mapper', d[0]) + elif patch_no == 364: + sql("""delete from `tabField Mapper Detail` + where to_field in ('qty', 'amount', 'export_amount') + and parent in ('Sales Order-Receivable Voucher', 'Delivery Note-Receivable Voucher') + """) + mappers = sql("select name, module from `tabDocType Mapper`") + for d in mappers: + if d[0] and d[1]: + reload_doc(d[1].lower(), 'DocType Mapper', d[0]) + elif patch_no == 365: + from patches.delivery_billing_status_patch import run_patch + run_patch() + elif patch_no == 367: + bin = sql("select name from tabBin") + for b in bin: + bobj = get_obj('Bin',b[0]) + prev_sle = bobj.get_prev_sle(posting_date = '2011-09-01', posting_time = '01:00') + bobj.update_item_valuation(posting_date = '2011-09-01', posting_time = '01:00', prev_sle = prev_sle) + elif patch_no == 368: + from webnotes.utils import nestedset + t = [ + ['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'], + ['Item Group', 'parent_item_group'], ['Territory', 'parent_territory'], + ['Customer Group', 'parent_customer_group'], ['Sales Person', 'parent_sales_person'] + ] + for d in t: + nestedset.rebuild_tree(d[0], d[1]) + elif patch_no == 369: + reload_doc('hr', 'doctype', 'appraisal') + reload_doc('hr', 'doctype', 'appraisal_detail') + elif patch_no == 370: + sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'") + elif patch_no == 371: + comp = sql("select name from tabCompany where docstatus!=2") + fy = sql("select name from `tabFiscal Year` order by year_start_date asc") + for c in comp: + prev_fy = '' + for f in fy: + fy_obj = get_obj('Fiscal Year', f[0]) + fy_obj.doc.past_year = prev_fy + fy_obj.doc.company = c[0] + fy_obj.doc.save() + fy_obj.repost() + prev_fy = f[0] + sql("commit") + sql("start transaction") + elif patch_no == 372: + sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'") + sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'") + elif patch_no == 373: + if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") + if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1") + elif patch_no == 374: + reload_doc('accounts', 'doctype', 'internal_reconciliation') + reload_doc('accounts', 'doctype', 'ir_payment_detail') + reload_doc('accounts', 'Module Def', 'Accounts') + elif patch_no == 375: + from webnotes.modules.module_manager import reload_doc + reload_doc('setup', 'doctype','features_setup') + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + for f in flds: + val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f) + val = val and val[0][0] or 0 + sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, '__'+f)) + + st = "'"+"', '".join(flds)+"'" + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + get_obj('Features Setup', 'Features Setup').doc.save() + + elif patch_no == 376: + from webnotes.modules.module_manager import reload_doc + + reload_doc('setup', 'doctype','features_setup') + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + for f in flds: + val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f) + val = val and val[0][0] or 0 + sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, 'fs_'+f)) + + st = "'__"+"', '__".join(flds)+"'" + + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + get_obj('Features Setup', 'Features Setup').doc.save() + elif patch_no == 377: + sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'") + sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'") + elif patch_no == 378: + rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null") + from webnotes.model.code import get_obj + m = get_obj('Features Setup') + for d in rs: + m.doc.fields[d[0]] = 1 + m.doc.save() + m.validate() + elif patch_no == 379: + if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1: + sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1") + elif patch_no == 380: + from webnotes.session_cache import clear_cache + clear_cache(webnotes.session['user']) + elif patch_no == 381: + reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt') + elif patch_no == 382: + flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos'] + + st = "'"+"', '".join(flds)+"'" + sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st) + sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st) + + from webnotes.session_cache import clear_cache + clear_cache(webnotes.session['user']) + elif patch_no == 383: + reload_doc('accounts', 'doctype', 'cost_center') + elif patch_no == 384: + reload_doc('stock', 'Module Def', 'Stock') + sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'") + sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'") diff --git a/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt similarity index 98% rename from production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt rename to erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt index dfbef85dfc..7065fa6ecc 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 6125d98192..3d6281195d 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 41c517376f..780b841208 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/doctype/bom_material/__init__.py b/erpnext/production/__init__.py similarity index 100% rename from production/doctype/bom_material/__init__.py rename to erpnext/production/__init__.py diff --git a/production/doctype/bom_operation/__init__.py b/erpnext/production/doctype/__init__.py similarity index 100% rename from production/doctype/bom_operation/__init__.py rename to erpnext/production/doctype/__init__.py diff --git a/production/doctype/bom_replace_utility/__init__.py b/erpnext/production/doctype/bill_of_materials/__init__.py similarity index 100% rename from production/doctype/bom_replace_utility/__init__.py rename to erpnext/production/doctype/bill_of_materials/__init__.py diff --git a/production/doctype/bill_of_materials/bill_of_materials.js b/erpnext/production/doctype/bill_of_materials/bill_of_materials.js similarity index 100% rename from production/doctype/bill_of_materials/bill_of_materials.js rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.js diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py similarity index 95% rename from production/doctype/bill_of_materials/bill_of_materials.py rename to erpnext/production/doctype/bill_of_materials/bill_of_materials.py index d287d2f9d5..9727a63fa8 100644 --- a/production/doctype/bill_of_materials/bill_of_materials.py +++ b/erpnext/production/doctype/bill_of_materials/bill_of_materials.py @@ -499,19 +499,19 @@ class DocType: def get_child_flat_bom_items(self, item, d): child_flat_bom_items=[] - if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'): +# if item and (item[0]['is_sub_contracted_item'] == 'Yes' or item[0]['is_pro_applicable'] == 'Yes'): - child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no))) - self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes']) + child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, '%s' as parent_bom, bom_mat_no, 'No' as is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and is_pro_applicable = 'No' and docstatus = 1" % ( d.bom_no, cstr(d.bom_no))) + self.cur_flat_bom_items.append([d.item_code, d.description, flt(d.qty), d.stock_uom, flt(d.moving_avg_rate), flt(d.amount_as_per_mar), flt(d.last_purchase_rate), flt(d.amount_as_per_lpr), flt(d.standard_rate), flt(d.amount_as_per_sr), flt(d.qty_consumed_per_unit), (item[0]['is_sub_contracted_item'] == 'Yes') and d.parent or d.bom_no, d.name, (item[0]['is_sub_contracted_item'] == 'Yes') and 'No' or 'Yes']) + return child_flat_bom_items - else: - child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no))) +# else: +# child_flat_bom_items = sql("select item_code, description, qty_consumed_per_unit, stock_uom, moving_avg_rate, last_purchase_rate, standard_rate, if(parent_bom = '%s', '%s', parent_bom) as parent_bom, bom_mat_no, is_pro_applicable from `tabFlat BOM Detail` where parent = '%s' and docstatus = 1" % ( d.bom_no, d.parent, cstr(d.bom_no))) - if not child_flat_bom_items: - msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no)) - raise Exception - else: - return child_flat_bom_items +# if not child_flat_bom_items: +# msgprint("Please Submit Child BOM := %s first." % cstr(d.bom_no)) +# raise Exception +# else:""" # Get Current Flat BOM Items 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_replace_utility_detail/__init__.py b/erpnext/production/doctype/bom_control/__init__.py similarity index 100% rename from production/doctype/bom_replace_utility_detail/__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_report_detail/__init__.py b/erpnext/production/doctype/bom_material/__init__.py similarity index 100% rename from production/doctype/bom_report_detail/__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/flat_bom_detail/__init__.py b/erpnext/production/doctype/bom_operation/__init__.py similarity index 100% rename from production/doctype/flat_bom_detail/__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/pf_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility/__init__.py similarity index 100% rename from production/doctype/pf_detail/__init__.py rename to erpnext/production/doctype/bom_replace_utility/__init__.py diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.js b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.js rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.js diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.py b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.py rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.py diff --git a/production/doctype/bom_replace_utility/bom_replace_utility.txt b/erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt similarity index 100% rename from production/doctype/bom_replace_utility/bom_replace_utility.txt rename to erpnext/production/doctype/bom_replace_utility/bom_replace_utility.txt diff --git a/production/doctype/pp_detail/__init__.py b/erpnext/production/doctype/bom_replace_utility_detail/__init__.py similarity index 100% rename from production/doctype/pp_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/pp_so_detail/__init__.py b/erpnext/production/doctype/bom_report_detail/__init__.py similarity index 100% rename from production/doctype/pp_so_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/ppw_detail/__init__.py b/erpnext/production/doctype/flat_bom_detail/__init__.py similarity index 100% rename from production/doctype/ppw_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/pro_detail/__init__.py b/erpnext/production/doctype/pf_detail/__init__.py similarity index 100% rename from production/doctype/pro_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/pro_pp_detail/__init__.py b/erpnext/production/doctype/pp_detail/__init__.py similarity index 100% rename from production/doctype/pro_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/production_control/__init__.py b/erpnext/production/doctype/pp_so_detail/__init__.py similarity index 100% rename from production/doctype/production_control/__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/production_order/__init__.py b/erpnext/production/doctype/ppw_detail/__init__.py similarity index 100% rename from production/doctype/production_order/__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/production_planning_tool/__init__.py b/erpnext/production/doctype/pro_detail/__init__.py similarity index 100% rename from production/doctype/production_planning_tool/__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/update_delivery_date/__init__.py b/erpnext/production/doctype/pro_pp_detail/__init__.py similarity index 100% rename from production/doctype/update_delivery_date/__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/update_delivery_date_detail/__init__.py b/erpnext/production/doctype/production_control/__init__.py similarity index 100% rename from production/doctype/update_delivery_date_detail/__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/workstation/__init__.py b/erpnext/production/doctype/production_order/__init__.py similarity index 100% rename from production/doctype/workstation/__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/page/__init__.py b/erpnext/production/doctype/production_planning_tool/__init__.py similarity index 100% rename from production/page/__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/page/bill_of_materials/__init__.py b/erpnext/production/doctype/update_delivery_date/__init__.py similarity index 100% rename from production/page/bill_of_materials/__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/search_criteria/__init__.py b/erpnext/production/doctype/update_delivery_date_detail/__init__.py similarity index 100% rename from production/search_criteria/__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/search_criteria/consumption_against_production/__init__.py b/erpnext/production/doctype/workstation/__init__.py similarity index 100% rename from production/search_criteria/consumption_against_production/__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/search_criteria/delivery_plan/__init__.py b/erpnext/production/page/__init__.py similarity index 100% rename from production/search_criteria/delivery_plan/__init__.py rename to erpnext/production/page/__init__.py diff --git a/production/search_criteria/itemwise_production_report/__init__.py b/erpnext/production/page/bill_of_materials/__init__.py similarity index 100% rename from production/search_criteria/itemwise_production_report/__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/production_orders_in_process/__init__.py b/erpnext/production/search_criteria/__init__.py similarity index 100% rename from production/search_criteria/production_orders_in_process/__init__.py rename to erpnext/production/search_criteria/__init__.py diff --git a/projects/__init__.py b/erpnext/production/search_criteria/consumption_against_production/__init__.py similarity index 100% rename from projects/__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/projects/doctype/__init__.py b/erpnext/production/search_criteria/delivery_plan/__init__.py similarity index 100% rename from projects/doctype/__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/projects/doctype/activity_type/__init__.py b/erpnext/production/search_criteria/itemwise_production_report/__init__.py similarity index 100% rename from projects/doctype/activity_type/__init__.py rename to erpnext/production/search_criteria/itemwise_production_report/__init__.py diff --git a/production/search_criteria/itemwise_production_report/itemwise_production_report.js b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.js similarity index 100% rename from production/search_criteria/itemwise_production_report/itemwise_production_report.js rename to erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.js diff --git a/production/search_criteria/itemwise_production_report/itemwise_production_report.txt b/erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt similarity index 100% rename from production/search_criteria/itemwise_production_report/itemwise_production_report.txt rename to erpnext/production/search_criteria/itemwise_production_report/itemwise_production_report.txt diff --git a/projects/doctype/project/__init__.py b/erpnext/production/search_criteria/production_orders_in_process/__init__.py similarity index 100% rename from projects/doctype/project/__init__.py rename to erpnext/production/search_criteria/production_orders_in_process/__init__.py diff --git a/production/search_criteria/production_orders_in_process/production_orders_in_process.txt b/erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt similarity index 100% rename from production/search_criteria/production_orders_in_process/production_orders_in_process.txt rename to erpnext/production/search_criteria/production_orders_in_process/production_orders_in_process.txt diff --git a/projects/Module Def/Projects/Projects.txt b/erpnext/projects/Module Def/Projects/Projects.txt similarity index 100% rename from projects/Module Def/Projects/Projects.txt rename to erpnext/projects/Module Def/Projects/Projects.txt diff --git a/projects/Role/Projects User/Projects User.txt b/erpnext/projects/Role/Projects User/Projects User.txt similarity index 100% rename from projects/Role/Projects User/Projects User.txt rename to erpnext/projects/Role/Projects User/Projects User.txt diff --git a/projects/doctype/project_activity/__init__.py b/erpnext/projects/__init__.py similarity index 100% rename from projects/doctype/project_activity/__init__.py rename to erpnext/projects/__init__.py diff --git a/projects/doctype/project_activity_update/__init__.py b/erpnext/projects/doctype/__init__.py similarity index 100% rename from projects/doctype/project_activity_update/__init__.py rename to erpnext/projects/doctype/__init__.py diff --git a/projects/doctype/project_control/__init__.py b/erpnext/projects/doctype/activity_type/__init__.py similarity index 100% rename from projects/doctype/project_control/__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_milestone/__init__.py b/erpnext/projects/doctype/project/__init__.py similarity index 100% rename from projects/doctype/project_milestone/__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/ticket/__init__.py b/erpnext/projects/doctype/project_activity/__init__.py similarity index 100% rename from projects/doctype/ticket/__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/timesheet/__init__.py b/erpnext/projects/doctype/project_activity_update/__init__.py similarity index 100% rename from projects/doctype/timesheet/__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/timesheet_detail/__init__.py b/erpnext/projects/doctype/project_control/__init__.py similarity index 100% rename from projects/doctype/timesheet_detail/__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/page/__init__.py b/erpnext/projects/doctype/project_milestone/__init__.py similarity index 100% rename from projects/page/__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/page/projects/__init__.py b/erpnext/projects/doctype/ticket/__init__.py similarity index 100% rename from projects/page/projects/__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/search_criteria/__init__.py b/erpnext/projects/doctype/timesheet/__init__.py similarity index 100% rename from projects/search_criteria/__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/search_criteria/dispatch_report/__init__.py b/erpnext/projects/doctype/timesheet_detail/__init__.py similarity index 100% rename from projects/search_criteria/dispatch_report/__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/search_criteria/projectwise_delivered_qty_and_costs/__init__.py b/erpnext/projects/page/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py rename to erpnext/projects/page/__init__.py diff --git a/projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py b/erpnext/projects/page/projects/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_pending_qty_and_costs/__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/projectwise_purchase_details/__init__.py b/erpnext/projects/search_criteria/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_purchase_details/__init__.py rename to erpnext/projects/search_criteria/__init__.py diff --git a/projects/search_criteria/projectwise_sales_details/__init__.py b/erpnext/projects/search_criteria/dispatch_report/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_sales_details/__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_sales_orders/__init__.py b/erpnext/projects/search_criteria/projectwise_delivered_qty_and_costs/__init__.py similarity index 100% rename from projects/search_criteria/projectwise_sales_orders/__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/timesheet_report/__init__.py b/erpnext/projects/search_criteria/projectwise_pending_qty_and_costs/__init__.py similarity index 100% rename from projects/search_criteria/timesheet_report/__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/selling/__init__.py b/erpnext/projects/search_criteria/projectwise_purchase_details/__init__.py similarity index 100% rename from selling/__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/selling/doctype/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_details/__init__.py similarity index 100% rename from selling/doctype/__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/selling/doctype/campaign/__init__.py b/erpnext/projects/search_criteria/projectwise_sales_orders/__init__.py similarity index 100% rename from selling/doctype/campaign/__init__.py rename to erpnext/projects/search_criteria/projectwise_sales_orders/__init__.py diff --git a/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt b/erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt similarity index 100% rename from projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt rename to erpnext/projects/search_criteria/projectwise_sales_orders/projectwise_sales_orders.txt diff --git a/selling/doctype/customer/__init__.py b/erpnext/projects/search_criteria/timesheet_report/__init__.py similarity index 100% rename from selling/doctype/customer/__init__.py rename to erpnext/projects/search_criteria/timesheet_report/__init__.py diff --git a/projects/search_criteria/timesheet_report/timesheet_report.js b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.js similarity index 100% rename from projects/search_criteria/timesheet_report/timesheet_report.js rename to erpnext/projects/search_criteria/timesheet_report/timesheet_report.js diff --git a/projects/search_criteria/timesheet_report/timesheet_report.txt b/erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt similarity index 100% rename from projects/search_criteria/timesheet_report/timesheet_report.txt rename to erpnext/projects/search_criteria/timesheet_report/timesheet_report.txt diff --git a/selling/doctype/enquiry/__init__.py b/erpnext/sandbox/__init__.py similarity index 100% rename from selling/doctype/enquiry/__init__.py rename 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 0000000000..f1035bc455 --- /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/selling/doctype/enquiry_detail/__init__.py b/erpnext/sandbox/testdata/__init__.py similarity index 100% rename from selling/doctype/enquiry_detail/__init__.py rename 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 0000000000..7f2d67c4da --- /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 0000000000..8f2a30c64a --- /dev/null +++ b/erpnext/sandbox/testdata/stock_entry.py @@ -0,0 +1,104 @@ +from webnotes.model.doc import Document + +# Material Receipt +#----------------------- + +mr = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '12:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Receipt', + 'name': 'mr' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'mr', + 'item_code' : 'it', + 't_warehouse' : 'wh1', + 'qty' : 10, + 'transfer_qty' : 10, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4, srno5, srno6, srno7, srno8, srno9, srno10' + } + ) +] + +# Material Transfer +#-------------------- + +mtn = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '13:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Transfer', + 'name': 'mtn' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'mtn', + 'item_code' : 'it', + 's_warehouse' : 'wh1', + 't_warehouse' : 'wh2', + 'qty' : 5, + 'transfer_qty' : 5, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4, srno5' + } + ) +] + +# Material Issue +#-------------------- + +mi = [ + Document( + fielddata = { + 'doctype': 'Stock Entry', + 'posting_date': '2011-09-01', + 'transfer_date': '2011-09-01', + 'posting_time': '14:00', + 'company': 'comp', + 'fiscal_year' : '2011-2012', + 'purpose': 'Material Issue', + 'name': 'mi' + } + ), + Document( + fielddata ={ + 'doctype': 'Stock Entry Detail', + 'parenttype': 'Stock Entry', + 'parentfield' : 'mtn_details', + 'parent' : 'mi', + 'item_code' : 'it', + 's_warehouse' : 'wh1', + 'qty' : 4, + 'transfer_qty' : 4, + 'incoming_rate': 100, + 'stock_uom': 'Nos', + 'conversion_factor': 1, + 'serial_no': 'srno1, srno2, srno3, srno4' + } + ) +] diff --git a/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt similarity index 91% rename from selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt rename to erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt index 67abbdc3b0..da8762deab 100644 --- a/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt +++ b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:34', 'docstatus': 0, - 'modified': '2011-05-17 11:42:57', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-15 15:04:42', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -31,7 +31,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Delivery Note', 'module': 'Selling', 'name': '__common__', @@ -41,7 +41,7 @@ # DocType Mapper, Delivery Note-Installation Note { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Delivery Note-Installation Note' }, @@ -111,6 +111,14 @@ 'to_field': 'prevdoc_date' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'serial_no', + 'match_id': 1, + 'to_field': 'serial_no' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt similarity index 75% rename from selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt rename to erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt index 4db092dab2..de6f60d965 100644 --- a/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt +++ b/erpnext/selling/DocType Mapper/Enquiry-Quotation/Enquiry-Quotation.txt @@ -5,8 +5,8 @@ { 'creation': '2010-08-08 17:09:34', 'docstatus': 0, - 'modified': '2011-05-10 16:04:40', - 'modified_by': 'umair@iwebnotes.com', + 'modified': '2011-09-14 12:36:24', + 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -23,7 +23,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', 'name': '__common__', 'parent': 'Enquiry-Quotation', 'parentfield': 'field_mapper_details', @@ -32,7 +31,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Enquiry', 'module': 'Selling', 'name': '__common__', @@ -42,7 +41,7 @@ # DocType Mapper, Enquiry-Quotation { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Enquiry-Quotation' }, @@ -50,6 +49,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'uom', + 'map': 'Yes', 'match_id': 1, 'to_field': 'stock_uom' }, @@ -58,6 +58,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', 'match_id': 0, 'to_field': 'enq_no' }, @@ -66,6 +67,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parent', + 'map': 'Yes', 'match_id': 1, 'to_field': 'prevdoc_docname' }, @@ -74,6 +76,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'parenttype', + 'map': 'Yes', 'match_id': 1, 'to_field': 'prevdoc_doctype' }, @@ -82,6 +85,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'enquiry_from', + 'map': 'Yes', 'match_id': 0, 'to_field': 'quotation_to' }, @@ -90,10 +94,38 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'enquiry_type', + 'map': 'Yes', 'match_id': 0, 'to_field': 'order_type' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'transaction_date', + 'map': 'No', + 'match_id': 0, + 'to_field': 'transaction_date' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'status', + 'map': 'No', + 'match_id': 0, + 'to_field': 'status' + }, + + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'naming_series', + 'map': 'No', + 'match_id': 0, + 'to_field': 'naming_series' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt similarity index 93% rename from selling/DocType Mapper/Lead-Customer/Lead-Customer.txt rename to erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt index 2b7a15a81f..268834a80f 100644 --- a/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt +++ b/erpnext/selling/DocType Mapper/Lead-Customer/Lead-Customer.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:34', 'docstatus': 0, - 'modified': '2010-10-14 13:39:44', + 'modified': '2011-09-14 12:36:24', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -36,7 +36,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Lead', 'module': 'Selling', 'name': '__common__', @@ -45,7 +45,7 @@ # DocType Mapper, Lead-Customer { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Lead-Customer' }, diff --git a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt similarity index 84% rename from selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt rename to erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt index 4b32723e02..5dc1c8fef1 100644 --- a/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt +++ b/erpnext/selling/DocType Mapper/Lead-Enquiry/Lead-Enquiry.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:34', 'docstatus': 0, - 'modified': '2010-08-05 20:21:54', + 'modified': '2011-09-14 12:36:24', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -26,7 +26,6 @@ # These values are common for all Field Mapper Detail { 'doctype': 'Field Mapper Detail', - 'map': 'Yes', 'match_id': 0, 'name': '__common__', 'parent': 'Lead-Enquiry', @@ -36,7 +35,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Lead', 'module': 'Selling', 'name': '__common__', @@ -45,7 +44,7 @@ # DocType Mapper, Lead-Enquiry { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Lead-Enquiry' }, @@ -53,6 +52,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'campaign_name', + 'map': 'Yes', 'to_field': 'campaign' }, @@ -60,6 +60,7 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'doctype', + 'map': 'Yes', 'to_field': 'enquiry_from' }, @@ -67,9 +68,18 @@ { 'doctype': 'Field Mapper Detail', 'from_field': 'name', + 'map': 'Yes', 'to_field': 'lead' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'status', + 'map': 'No', + 'to_field': 'status' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail' diff --git a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt similarity index 94% rename from selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt rename to erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt index 04f70ad94c..ee8f8b0167 100644 --- a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt +++ b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2010-09-01 15:48:10', + 'creation': '2010-09-01 15:47:59', 'docstatus': 0, - 'modified': '2010-09-01 14:23:28', + 'modified': '2011-09-15 15:04:43', 'modified_by': 'Administrator', 'owner': 'ashwini@webnotestech.com' }, diff --git a/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt similarity index 92% rename from selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt rename to erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt index 4d493a612b..feadb98f9a 100644 --- a/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt +++ b/erpnext/selling/DocType Mapper/Quotation-Sales Order/Quotation-Sales Order.txt @@ -5,7 +5,7 @@ { 'creation': '2010-08-08 17:09:35', 'docstatus': 0, - 'modified': '2011-08-25 18:25:02', + 'modified': '2011-09-14 12:36:24', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -30,7 +30,7 @@ # These values are common for all DocType Mapper { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'from_doctype': 'Quotation', 'module': 'Selling', 'name': '__common__', @@ -40,7 +40,7 @@ # DocType Mapper, Quotation-Sales Order { - 'doctype': 'DocType Mapper', + 'doctype': u'DocType Mapper', 'name': 'Quotation-Sales Order' }, @@ -110,6 +110,15 @@ 'to_field': 'naming_series' }, + # Field Mapper Detail + { + 'doctype': 'Field Mapper Detail', + 'from_field': 'status', + 'map': 'No', + 'match_id': 0, + 'to_field': 'status' + }, + # Table Mapper Detail { 'doctype': 'Table Mapper Detail', diff --git a/selling/Module Def/Selling/Selling.txt b/erpnext/selling/Module Def/Selling/Selling.txt similarity index 100% rename from selling/Module Def/Selling/Selling.txt rename to erpnext/selling/Module Def/Selling/Selling.txt diff --git a/selling/Role/Customer/Customer.txt b/erpnext/selling/Role/Customer/Customer.txt similarity index 100% rename from selling/Role/Customer/Customer.txt rename to erpnext/selling/Role/Customer/Customer.txt diff --git a/selling/Role/Partner/Partner.txt b/erpnext/selling/Role/Partner/Partner.txt similarity index 100% rename from selling/Role/Partner/Partner.txt rename to erpnext/selling/Role/Partner/Partner.txt diff --git a/selling/Role/Sales Manager/Sales Manager.txt b/erpnext/selling/Role/Sales Manager/Sales Manager.txt similarity index 100% rename from selling/Role/Sales Manager/Sales Manager.txt rename to erpnext/selling/Role/Sales Manager/Sales Manager.txt diff --git a/selling/Role/Sales Master Manager/Sales Master Manager.txt b/erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt similarity index 100% rename from selling/Role/Sales Master Manager/Sales Master Manager.txt rename to erpnext/selling/Role/Sales Master Manager/Sales Master Manager.txt diff --git a/selling/Role/Sales User/Sales User.txt b/erpnext/selling/Role/Sales User/Sales User.txt similarity index 100% rename from selling/Role/Sales User/Sales User.txt rename to erpnext/selling/Role/Sales User/Sales User.txt diff --git a/selling/doctype/enquiry_sms_detail/__init__.py b/erpnext/selling/__init__.py similarity index 100% rename from selling/doctype/enquiry_sms_detail/__init__.py rename to erpnext/selling/__init__.py diff --git a/selling/doctype/follow_up/__init__.py b/erpnext/selling/doctype/__init__.py similarity index 100% rename from selling/doctype/follow_up/__init__.py rename to erpnext/selling/doctype/__init__.py diff --git a/selling/doctype/industry_type/__init__.py b/erpnext/selling/doctype/campaign/__init__.py similarity index 100% rename from selling/doctype/industry_type/__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/installation_note/__init__.py b/erpnext/selling/doctype/customer/__init__.py similarity index 100% rename from selling/doctype/installation_note/__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/installed_item_details/__init__.py b/erpnext/selling/doctype/enquiry/__init__.py similarity index 100% rename from selling/doctype/installed_item_details/__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 97% rename from selling/doctype/enquiry/enquiry.py rename to erpnext/selling/doctype/enquiry/enquiry.py index 12597022bd..773bedf1fe 100644 --- a/selling/doctype/enquiry/enquiry.py +++ b/erpnext/selling/doctype/enquiry/enquiry.py @@ -115,26 +115,17 @@ class DocType(TransactionBase): ch = addchild(ev, 'event_individuals', 'Event User', 0) ch.person = d ch.save(1) - - #user_list = ['Sales Manager', 'Sales User'] - #for d in user_list: - # ch = addchild(ev, 'event_individuals', 'Event User', 0) - # ch.person = d - # ch.save() + #--------------Validation For Last Contact Date----------------- # ==================================================================================================================== def set_last_contact_date(self): - #if not self.doc.contact_date_ref: - #self.doc.contact_date_ref=self.doc.contact_date - #self.doc.last_contact_date=self.doc.contact_date_ref if self.doc.contact_date_ref and self.doc.contact_date_ref != self.doc.contact_date: if getdate(self.doc.contact_date_ref) < getdate(self.doc.contact_date): self.doc.last_contact_date=self.doc.contact_date_ref else: msgprint("Contact Date Cannot be before Last Contact Date") raise Exception - #set(self.doc, 'contact_date_ref',self.doc.contact_date) # check if item present in item table # ==================================================================================================================== @@ -171,8 +162,6 @@ class DocType(TransactionBase): raise Exception else: set(self.doc, 'status', 'Cancelled') - - get_obj('Feed Control').make_feed(self.doc, 'cancelled') # declare as enquiry lost #--------------------------- diff --git a/selling/doctype/enquiry/enquiry.txt b/erpnext/selling/doctype/enquiry/enquiry.txt similarity index 100% rename from selling/doctype/enquiry/enquiry.txt rename to erpnext/selling/doctype/enquiry/enquiry.txt diff --git a/selling/doctype/lead/__init__.py b/erpnext/selling/doctype/enquiry_detail/__init__.py similarity index 100% rename from selling/doctype/lead/__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/lead_attachment_detail/__init__.py b/erpnext/selling/doctype/enquiry_sms_detail/__init__.py similarity index 100% rename from selling/doctype/lead_attachment_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/lead_item_detail/__init__.py b/erpnext/selling/doctype/follow_up/__init__.py similarity index 100% rename from selling/doctype/lead_item_detail/__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/lead_sms_detail/__init__.py b/erpnext/selling/doctype/industry_type/__init__.py similarity index 100% rename from selling/doctype/lead_sms_detail/__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/plot_control/__init__.py b/erpnext/selling/doctype/installation_note/__init__.py similarity index 100% rename from selling/doctype/plot_control/__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/quotation/__init__.py b/erpnext/selling/doctype/installed_item_details/__init__.py similarity index 100% rename from selling/doctype/quotation/__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/quotation_detail/__init__.py b/erpnext/selling/doctype/lead/__init__.py similarity index 100% rename from selling/doctype/quotation_detail/__init__.py rename to erpnext/selling/doctype/lead/__init__.py diff --git a/selling/doctype/lead/lead.js b/erpnext/selling/doctype/lead/lead.js similarity index 100% rename from selling/doctype/lead/lead.js rename to erpnext/selling/doctype/lead/lead.js diff --git a/selling/doctype/lead/lead.py b/erpnext/selling/doctype/lead/lead.py similarity index 100% rename from selling/doctype/lead/lead.py rename to erpnext/selling/doctype/lead/lead.py diff --git a/selling/doctype/lead/lead.txt b/erpnext/selling/doctype/lead/lead.txt similarity index 100% rename from selling/doctype/lead/lead.txt rename to erpnext/selling/doctype/lead/lead.txt diff --git a/selling/doctype/return_detail/__init__.py b/erpnext/selling/doctype/lead_attachment_detail/__init__.py similarity index 100% rename from selling/doctype/return_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/sales_common/__init__.py b/erpnext/selling/doctype/lead_item_detail/__init__.py similarity index 100% rename from selling/doctype/sales_common/__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/sales_order/__init__.py b/erpnext/selling/doctype/lead_sms_detail/__init__.py similarity index 100% rename from selling/doctype/sales_order/__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/sales_order_detail/__init__.py b/erpnext/selling/doctype/plot_control/__init__.py similarity index 100% rename from selling/doctype/sales_order_detail/__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/sales_team/__init__.py b/erpnext/selling/doctype/quotation/__init__.py similarity index 100% rename from selling/doctype/sales_team/__init__.py rename to erpnext/selling/doctype/quotation/__init__.py diff --git a/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js similarity index 96% rename from selling/doctype/quotation/quotation.js rename to erpnext/selling/doctype/quotation/quotation.js index b3dcde681a..21eceb9c61 100644 --- a/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -312,10 +312,11 @@ cur_frm.cscript.validate = function(doc,cdt,cdn){ //================ Last Quoted Price and Last Sold Price suggestion ====================== cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= function(doc, cdt, cdn) { var d = locals[cdt][cdn]; + var cond = (doc.order_type == 'Maintenance')? " and tabItem.is_service_item = 'Yes'" : " and tabItem.is_sales_item = 'Yes'" if(doc.customer) - return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate FROM\ + return repl("SELECT i.name,i.item_code,concat('Last quoted at - ',cast(quote_rate as char)) as quote_rate,concat('Last sold at - ',cast(sales_rate as char)) as sales_rate, i.item_name, i.description FROM\ (\ - select item_code,name from tabItem where tabItem.%(key)s like '%s'\ + select item_code,name, item_name, description from tabItem where tabItem.%(key)s like '%s' %(cond)s\ )i\ left join\ (\ @@ -336,7 +337,7 @@ cur_frm.fields_dict['quotation_details'].grid.get_field('item_code').get_query= (\ select rd.item_code,max(voucher_date) as voucher_date from `tabRV Detail` rd, `tabReceivable Voucher` r where r.name=rd.parent and r.docstatus=1 and customer='%(cust)s' group by rd.item_code\ )m where r.item_code=m.item_code and r.voucher_date=m.voucher_date\ - )s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer}); + )s on i.item_code=s.item_code ORDER BY item_code LIMIT 50",{cust:doc.customer, cond:cond}); else - return "SELECT name, item_code FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' ORDER BY tabItem.item_code DESC LIMIT 50"; -} \ No newline at end of file + return repl("SELECT name, item_name, description FROM tabItem WHERE `tabItem`.%(key)s LIKE '%s' %(cond)s ORDER BY tabItem.item_code DESC LIMIT 50", {cond:cond}); +} diff --git a/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py similarity index 100% rename from selling/doctype/quotation/quotation.py rename to erpnext/selling/doctype/quotation/quotation.py diff --git a/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt similarity index 100% rename from selling/doctype/quotation/quotation.txt rename to erpnext/selling/doctype/quotation/quotation.txt diff --git a/selling/doctype/shipping_address/__init__.py b/erpnext/selling/doctype/quotation_detail/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from selling/doctype/shipping_address/__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/sms_center/__init__.py b/erpnext/selling/doctype/return_detail/__init__.py similarity index 100% rename from selling/doctype/sms_center/__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/page/__init__.py b/erpnext/selling/doctype/sales_common/__init__.py similarity index 100% rename from selling/page/__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/page/customers/__init__.py b/erpnext/selling/doctype/sales_order/__init__.py similarity index 100% rename from selling/page/customers/__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/page/sales_browser/__init__.py b/erpnext/selling/doctype/sales_order_detail/__init__.py similarity index 100% rename from selling/page/sales_browser/__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/page/sales_dashboard/__init__.py b/erpnext/selling/doctype/sales_team/__init__.py similarity index 100% rename from selling/page/sales_dashboard/__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/search_criteria/__init__.py b/erpnext/selling/doctype/shipping_address/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from selling/search_criteria/__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/search_criteria/delivered_items_to_be_install/__init__.py b/erpnext/selling/doctype/sms_center/__init__.py similarity index 100% rename from selling/search_criteria/delivered_items_to_be_install/__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/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py b/erpnext/selling/page/__init__.py similarity index 100% rename from selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py rename to erpnext/selling/page/__init__.py diff --git a/selling/search_criteria/draft_sales_orders/__init__.py b/erpnext/selling/page/customers/__init__.py similarity index 100% rename from selling/search_criteria/draft_sales_orders/__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/search_criteria/follow_up_report/__init__.py b/erpnext/selling/page/sales_browser/__init__.py similarity index 100% rename from selling/search_criteria/follow_up_report/__init__.py rename to erpnext/selling/page/sales_browser/__init__.py diff --git a/selling/page/sales_browser/sales_browser.html b/erpnext/selling/page/sales_browser/sales_browser.html similarity index 100% rename from selling/page/sales_browser/sales_browser.html rename to erpnext/selling/page/sales_browser/sales_browser.html diff --git a/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js similarity index 100% rename from selling/page/sales_browser/sales_browser.js rename to erpnext/selling/page/sales_browser/sales_browser.js diff --git a/selling/page/sales_browser/sales_browser.txt b/erpnext/selling/page/sales_browser/sales_browser.txt similarity index 100% rename from selling/page/sales_browser/sales_browser.txt rename to erpnext/selling/page/sales_browser/sales_browser.txt diff --git a/selling/search_criteria/gross_profit/__init__.py b/erpnext/selling/page/sales_dashboard/__init__.py similarity index 100% rename from selling/search_criteria/gross_profit/__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/itemwise_delivery_details/__init__.py b/erpnext/selling/search_criteria/__init__.py similarity index 100% rename from selling/search_criteria/itemwise_delivery_details/__init__.py rename to erpnext/selling/search_criteria/__init__.py diff --git a/selling/search_criteria/itemwise_sales_details/__init__.py b/erpnext/selling/search_criteria/delivered_items_to_be_install/__init__.py similarity index 100% rename from selling/search_criteria/itemwise_sales_details/__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/monthly_despatched_trend/__init__.py b/erpnext/selling/search_criteria/delivery_note_itemwise_pending_to_bill/__init__.py similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/__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/periodic_sales_summary/__init__.py b/erpnext/selling/search_criteria/draft_sales_orders/__init__.py similarity index 100% rename from selling/search_criteria/periodic_sales_summary/__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/sales_agentwise_commission/__init__.py b/erpnext/selling/search_criteria/follow_up_report/__init__.py similarity index 100% rename from selling/search_criteria/sales_agentwise_commission/__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/sales_order_pending_items1/__init__.py b/erpnext/selling/search_criteria/gross_profit/__init__.py similarity index 100% rename from selling/search_criteria/sales_order_pending_items1/__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/sales_orderwise_booking_&_delivery_summary/__init__.py b/erpnext/selling/search_criteria/itemwise_delivery_details/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__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/sales_orderwise_pending_amount_to_bill/__init__.py b/erpnext/selling/search_criteria/itemwise_sales_details/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_amount_to_bill/__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/sales_orderwise_pending_qty_to_deliver/__init__.py b/erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py similarity index 100% rename from selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py rename to erpnext/selling/search_criteria/monthly_despatched_trend/__init__.py diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.js diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.py diff --git a/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt b/erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt similarity index 100% rename from selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt rename to erpnext/selling/search_criteria/monthly_despatched_trend/monthly_despatched_trend.txt diff --git a/selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/periodic_sales_summary/__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/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_personwise_transaction_summary/__init__.py b/erpnext/selling/search_criteria/sales_agentwise_commission/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/__init__.py rename to erpnext/selling/search_criteria/sales_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/target_variance_report/__init__.py b/erpnext/selling/search_criteria/sales_order_pending_items1/__init__.py similarity index 100% rename from selling/search_criteria/target_variance_report/__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/territories_target_variance_item_group_wise/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_booking_&_delivery_summary/__init__.py similarity index 100% rename from selling/search_criteria/territories_target_variance_item_group_wise/__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/territory_item_group_wise_gp/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_pending_amount_to_bill/__init__.py similarity index 100% rename from selling/search_criteria/territory_item_group_wise_gp/__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/territory_sales___variance_report/__init__.py b/erpnext/selling/search_criteria/sales_orderwise_pending_qty_to_deliver/__init__.py similarity index 100% rename from selling/search_criteria/territory_sales___variance_report/__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/total_target_variance_report/__init__.py b/erpnext/selling/search_criteria/sales_persons_target_variance_item_group_wise/__init__.py similarity index 100% rename from selling/search_criteria/total_target_variance_report/__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/variance_report/__init__.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from selling/search_criteria/variance_report/__init__.py rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/__init__.py diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.js diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.py diff --git a/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt b/erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt similarity index 100% rename from selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt rename to erpnext/selling/search_criteria/sales_personwise_transaction_summary/sales_personwise_transaction_summary.txt diff --git a/setup/__init__.py b/erpnext/selling/search_criteria/target_variance_report/__init__.py similarity index 100% rename from setup/__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/setup/doctype/__init__.py b/erpnext/selling/search_criteria/territories_target_variance_item_group_wise/__init__.py similarity index 100% rename from setup/doctype/__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/setup/doctype/authorization_control/__init__.py b/erpnext/selling/search_criteria/territory_item_group_wise_gp/__init__.py similarity index 100% rename from setup/doctype/authorization_control/__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/setup/doctype/authorization_rule/__init__.py b/erpnext/selling/search_criteria/territory_sales___variance_report/__init__.py similarity index 100% rename from setup/doctype/authorization_rule/__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/setup/doctype/brand/__init__.py b/erpnext/selling/search_criteria/total_target_variance_report/__init__.py similarity index 100% rename from setup/doctype/brand/__init__.py rename to erpnext/selling/search_criteria/total_target_variance_report/__init__.py diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.js b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.js similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.js rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.js diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.py b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.py rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.py diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.sql rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.sql diff --git a/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt b/erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt similarity index 100% rename from selling/search_criteria/total_target_variance_report/total_target_variance_report.txt rename to erpnext/selling/search_criteria/total_target_variance_report/total_target_variance_report.txt diff --git a/setup/doctype/company/__init__.py b/erpnext/selling/search_criteria/variance_report/__init__.py similarity index 100% rename from setup/doctype/company/__init__.py rename to erpnext/selling/search_criteria/variance_report/__init__.py diff --git a/selling/search_criteria/variance_report/variance_report.js b/erpnext/selling/search_criteria/variance_report/variance_report.js similarity index 100% rename from selling/search_criteria/variance_report/variance_report.js rename to erpnext/selling/search_criteria/variance_report/variance_report.js diff --git a/selling/search_criteria/variance_report/variance_report.py b/erpnext/selling/search_criteria/variance_report/variance_report.py similarity index 100% rename from selling/search_criteria/variance_report/variance_report.py rename to erpnext/selling/search_criteria/variance_report/variance_report.py diff --git a/selling/search_criteria/variance_report/variance_report.sql b/erpnext/selling/search_criteria/variance_report/variance_report.sql similarity index 100% rename from selling/search_criteria/variance_report/variance_report.sql rename to erpnext/selling/search_criteria/variance_report/variance_report.sql diff --git a/selling/search_criteria/variance_report/variance_report.txt b/erpnext/selling/search_criteria/variance_report/variance_report.txt similarity index 100% rename from selling/search_criteria/variance_report/variance_report.txt rename to erpnext/selling/search_criteria/variance_report/variance_report.txt diff --git a/setup/Module Def/Setup/Setup.txt b/erpnext/setup/Module Def/Setup/Setup.txt similarity index 100% rename from setup/Module Def/Setup/Setup.txt rename to erpnext/setup/Module Def/Setup/Setup.txt diff --git a/setup/Role/System Manager/System Manager.txt b/erpnext/setup/Role/System Manager/System Manager.txt similarity index 100% rename from setup/Role/System Manager/System Manager.txt rename to erpnext/setup/Role/System Manager/System Manager.txt diff --git a/setup/doctype/contact_control/__init__.py b/erpnext/setup/__init__.py similarity index 100% rename from setup/doctype/contact_control/__init__.py rename to erpnext/setup/__init__.py diff --git a/setup/doctype/country/__init__.py b/erpnext/setup/doctype/__init__.py similarity index 100% rename from setup/doctype/country/__init__.py rename to erpnext/setup/doctype/__init__.py diff --git a/setup/doctype/currency/__init__.py b/erpnext/setup/doctype/authorization_control/__init__.py similarity index 100% rename from setup/doctype/currency/__init__.py rename to erpnext/setup/doctype/authorization_control/__init__.py diff --git a/setup/doctype/authorization_control/authorization_control.js b/erpnext/setup/doctype/authorization_control/authorization_control.js similarity index 100% rename from setup/doctype/authorization_control/authorization_control.js rename to erpnext/setup/doctype/authorization_control/authorization_control.js diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py new file mode 100644 index 0000000000..3ddcab41db --- /dev/null +++ b/erpnext/setup/doctype/authorization_control/authorization_control.py @@ -0,0 +1,200 @@ +# Please edit this list and import only required elements +import webnotes + +from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add +from webnotes.model import db_exists +from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType +from webnotes.model.doclist import getlist, copy_doclist +from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax +from webnotes import session, form, is_testing, msgprint, errprint + +set = webnotes.conn.set +sql = webnotes.conn.sql +get_value = webnotes.conn.get_value +in_transaction = webnotes.conn.in_transaction +convert_to_lists = webnotes.conn.convert_to_lists + +# ----------------------------------------------------------------------------------------- +from utilities.transaction_base import TransactionBase + +class DocType(TransactionBase): + def __init__(self, d, dl): + self.doc, self.doclist = d, dl + + + # Get Names of all Approving Users and Roles + # ------------------------------------------- + def get_appr_user_role(self, det, doctype_name, total, based_on, condition, item, company): + amt_list, appr_users, appr_roles = [], [], [] + users, roles = '','' + if det: + for x in det: + amt_list.append(flt(x[0])) + max_amount = max(amt_list) + + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company)) + if not app_dtl: + app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) + for d in app_dtl: + if(d[0]): appr_users.append(d[0]) + if(d[1]): appr_roles.append(d[1]) + + if not has_common(appr_roles, webnotes.user.get_roles()) and not has_common(appr_users, session['user']): + msg, add_msg = '','' + if max_amount: + dcc = TransactionBase().get_company_currency(self.doc.company) + if based_on == 'Grand Total': msg = "since Grand Total exceeds %s. %s" % (dcc, flt(max_amount)) + elif based_on == 'Itemwise Discount': msg = "since Discount exceeds %s for Item Code : %s" % (cstr(max_amount)+'%', item) + elif based_on == 'Average Discount' or based_on == 'Customerwise Discount': msg = "since Discount exceeds %s" % (cstr(max_amount)+'%') + + if appr_users: add_msg = "Users : "+cstr(appr_users) + if appr_roles: add_msg = "Roles : "+cstr(appr_roles) + if appr_users and appr_roles: add_msg = "Users : "+cstr(appr_users)+" or "+"Roles : "+cstr(appr_roles) + msgprint("You do not have an authority to submit this %s %s. Please send for approval to %s" % (doctype_name, msg, add_msg)) + raise Exception + + + # Check if authorization rule is set specific to user + # ---------------------------------------------------- + def validate_auth_rule(self, doctype_name, total, based_on, cond, company, item = ''): + chk = 1 + add_cond1,add_cond2 = '','' + if based_on == 'Itemwise Discount': + add_cond1 += " and master_name = '"+cstr(item)+"'" + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company)) + if not itemwise_exists: + itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on)) + if itemwise_exists: + self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) + chk = 0 + if chk == 1: + if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company)) + if not appr: + appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on)) + self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) + + + # Bifurcate Authorization based on type + # -------------------------------------- + def bifurcate_based_on_type(self, doctype_name, total, av_dis, based_on, doc_obj, val, company): + add_cond = '' + auth_value = av_dis + if val == 1: add_cond += " and system_user = '"+session['user']+"'" + elif val == 2: add_cond += " and system_role IN %s" % ("('"+"','".join(webnotes.user.get_roles())+"')") + else: add_cond += " and ifnull(system_user,'') = '' and ifnull(system_role,'') = ''" + if based_on == 'Grand Total': auth_value = total + elif based_on == 'Customerwise Discount': + if doc_obj: + if doc_obj.doc.doctype == 'Receivable Voucher': customer = doc_obj.doc.customer + else: customer = doc_obj.doc.customer_name + add_cond = " and master_name = '"+cstr(customer)+"'" + if based_on == 'Itemwise Discount': + if doc_obj: + for t in getlist(doc_obj.doclist, doc_obj.fname): + self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code ) + else: + self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company) + + + # Check Approving Authority for transactions other than expense voucher and Appraisal + # ------------------------- + def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''): + if doctype_name == 'Payable Voucher': doctype_name = 'Purchase Invoice' + elif doctype_name == 'Receivable Voucher': doctype_name = 'Sales Invoice' + av_dis = 0 + if doc_obj: + ref_rate, basic_rate = 0, 0 + for d in getlist(doc_obj.doclist, doc_obj.fname): + if d.base_ref_rate and d.basic_rate: + ref_rate += flt(d.base_ref_rate) + basic_rate += flt(d.basic_rate) + if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate) + + final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount'] + # Individual User + # ================ + # Check for authorization set for individual user + + based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))] + + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) + + # Remove user specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Specific Role + # =============== + # Check for authorization set on particular roles + based_on = [x[0] for x in sql("""select based_on + from `tabAuthorization Rule` + where transaction = %s and system_role IN (%s) and based_on IN (%s) + and (company = %s or ifnull(company,'')='') + and docstatus != 2 + """ % ('%s', "'"+"','".join(webnotes.user.get_roles())+"'", "'"+"','".join(final_based_on)+"'", '%s'), (doctype_name, company))] + + for d in based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 2, company) + + # Remove role specific rules from global authorization rules + for r in based_on: + if r in final_based_on and r != 'Itemwise Discount': final_based_on.remove(r) + + # Global Rule + # ============= + # Check for global authorization + for g in final_based_on: + self.bifurcate_based_on_type(doctype_name, total, av_dis, g, doc_obj, 0, company) + + #======================================================================================================================== + # payroll related check + def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): + val_lst =[] + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) + if not val: + val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount)) + + if val: + val_lst = [y[0] for y in val] + else: + val_lst.append(0) + + max_val = max(val_lst) + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) + + return rule + + #--------------------------------------------------------------------------------------------------------------------- + # related to payroll module only + def get_approver_name(self, doctype_name, total, doc_obj=''): + app_user=[] + app_specific_user =[] + rule ={} + + if doc_obj: + if doctype_name == 'Expense Voucher': + rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) + elif doctype_name == 'Appraisal': + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) + if not rule: + rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) + + if rule: + for m in rule: + if m['to_emp'] or m['to_designation']: + if m['approving_user']: + app_specific_user.append(m['approving_user']) + elif m['approving_role']: + user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] + for x in user_lst: + if not x in app_user: + app_user.append(x) + + if len(app_specific_user) >0: + return app_specific_user + else: + return app_user diff --git a/setup/doctype/authorization_control/authorization_control.txt b/erpnext/setup/doctype/authorization_control/authorization_control.txt similarity index 100% rename from setup/doctype/authorization_control/authorization_control.txt rename to erpnext/setup/doctype/authorization_control/authorization_control.txt diff --git a/setup/doctype/customer_group/__init__.py b/erpnext/setup/doctype/authorization_rule/__init__.py similarity index 100% rename from setup/doctype/customer_group/__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/email_settings/__init__.py b/erpnext/setup/doctype/brand/__init__.py similarity index 100% rename from setup/doctype/email_settings/__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/features_setup/__init__.py b/erpnext/setup/doctype/company/__init__.py similarity index 100% rename from setup/doctype/features_setup/__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 0000000000..a163870a6a --- /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 = """ +

%(comp)s

%(add)s
+ + """ % {'comp':self.doc.name, + 'add':self.doc.address.replace("\n",'
')} + + 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/import_data_control/__init__.py b/erpnext/setup/doctype/contact_control/__init__.py similarity index 100% rename from setup/doctype/import_data_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/item_group/__init__.py b/erpnext/setup/doctype/country/__init__.py similarity index 100% rename from setup/doctype/item_group/__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/manage_account/__init__.py b/erpnext/setup/doctype/currency/__init__.py similarity index 100% rename from setup/doctype/manage_account/__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/market_segment/__init__.py b/erpnext/setup/doctype/customer_group/__init__.py similarity index 100% rename from setup/doctype/market_segment/__init__.py rename to erpnext/setup/doctype/customer_group/__init__.py diff --git a/setup/doctype/customer_group/customer_group.js b/erpnext/setup/doctype/customer_group/customer_group.js similarity index 100% rename from setup/doctype/customer_group/customer_group.js rename to erpnext/setup/doctype/customer_group/customer_group.js diff --git a/setup/doctype/customer_group/customer_group.py b/erpnext/setup/doctype/customer_group/customer_group.py similarity index 100% rename from setup/doctype/customer_group/customer_group.py rename to erpnext/setup/doctype/customer_group/customer_group.py diff --git a/setup/doctype/customer_group/customer_group.txt b/erpnext/setup/doctype/customer_group/customer_group.txt similarity index 100% rename from setup/doctype/customer_group/customer_group.txt rename to erpnext/setup/doctype/customer_group/customer_group.txt diff --git a/setup/doctype/naming_series/__init__.py b/erpnext/setup/doctype/email_digest/__init__.py similarity index 100% rename from setup/doctype/naming_series/__init__.py rename 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 0000000000..1b17d5bb4f --- /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 0000000000..f61dacc961 --- /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 0000000000..ddb13f473a --- /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 0000000000..026caa7d6e --- /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/naming_series_options/__init__.py b/erpnext/setup/doctype/email_settings/__init__.py similarity index 100% rename from setup/doctype/naming_series_options/__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/notification_control/__init__.py b/erpnext/setup/doctype/features_setup/__init__.py similarity index 100% rename from setup/doctype/notification_control/__init__.py rename to erpnext/setup/doctype/features_setup/__init__.py diff --git a/setup/doctype/features_setup/features_setup.py b/erpnext/setup/doctype/features_setup/features_setup.py similarity index 99% rename from setup/doctype/features_setup/features_setup.py rename to erpnext/setup/doctype/features_setup/features_setup.py index 3a549d9e32..f12d2824fd 100644 --- a/setup/doctype/features_setup/features_setup.py +++ b/erpnext/setup/doctype/features_setup/features_setup.py @@ -8,6 +8,7 @@ class DocType: """ from webnotes.model import default_fields from webnotes.utils import set_default + for key in self.doc.fields: if key not in default_fields: set_default(key, self.doc.fields[key]) diff --git a/setup/doctype/features_setup/features_setup.txt b/erpnext/setup/doctype/features_setup/features_setup.txt similarity index 89% rename from setup/doctype/features_setup/features_setup.txt rename to erpnext/setup/doctype/features_setup/features_setup.txt index 224d175a0b..909882eed9 100644 --- a/setup/doctype/features_setup/features_setup.txt +++ b/erpnext/setup/doctype/features_setup/features_setup.txt @@ -3,17 +3,18 @@ # These values are common in all dictionaries { - 'creation': '2011-08-25 16:53:56', + 'creation': '2011-09-07 11:59:05', 'docstatus': 0, - 'modified': '2011-08-31 15:05:53', + 'modified': '2011-10-05 10:50:17', 'modified_by': 'Administrator', 'owner': 'Administrator' }, # These values are common for all DocType { - '_last_update': '1314783102', + '_last_update': '1317790484', 'colour': 'White:FFF', + 'default_print_format': 'Standard', 'doctype': 'DocType', 'issingle': 1, 'module': 'Setup', @@ -21,7 +22,7 @@ 'name_case': 'Title Case', 'section_style': 'Simple', 'show_in_menu': 1, - 'version': 16 + 'version': 21 }, # These values are common for all DocField @@ -77,7 +78,7 @@ 'colour': 'White:FFF', 'description': 'To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.', 'doctype': 'DocField', - 'fieldname': 'item_searial_nos', + 'fieldname': 'fs_item_serial_nos', 'fieldtype': 'Check', 'label': 'Item Serial Nos' }, @@ -87,7 +88,7 @@ 'colour': 'White:FFF', 'description': 'To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc', 'doctype': 'DocField', - 'fieldname': 'item_batch_nos', + 'fieldname': 'fs_item_batch_nos', 'fieldtype': 'Check', 'label': 'Item Batch Nos' }, @@ -97,7 +98,7 @@ 'colour': 'White:FFF', 'description': 'To track brand name in the following documents
\nDelivery Note, Enuiry, Indent, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Receivable Voucher, Sales BOM, Sales Order, Serial No', 'doctype': 'DocField', - 'fieldname': 'brands', + 'fieldname': 'fs_brands', 'fieldtype': 'Check', 'label': 'Brands' }, @@ -113,7 +114,7 @@ 'colour': 'White:FFF', 'description': '1. To maintain the customer wise item code and to make them searchable based on their code use this option', 'doctype': 'DocField', - 'fieldname': 'item_advanced', + 'fieldname': 'fs_item_advanced', 'fieldtype': 'Check', 'label': 'Item Advanced' }, @@ -123,7 +124,7 @@ 'colour': 'White:FFF', 'description': 'If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order', 'doctype': 'DocField', - 'fieldname': 'packing_details', + 'fieldname': 'fs_packing_details', 'fieldtype': 'Check', 'label': 'Packing Detials' }, @@ -133,7 +134,7 @@ 'colour': 'White:FFF', 'description': 'To get Item Group in details table', 'doctype': 'DocField', - 'fieldname': 'item_group_in_details', + 'fieldname': 'fs_item_group_in_details', 'fieldtype': 'Check', 'label': 'Item Groups in Details' }, @@ -150,7 +151,7 @@ 'colour': 'White:FFF', 'description': 'All export related fields like currency, conversion rate, export total, export grand total etc are available in
\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.', 'doctype': 'DocField', - 'fieldname': 'exports', + 'fieldname': 'fs_exports', 'fieldtype': 'Check', 'label': 'Exports' }, @@ -160,7 +161,7 @@ 'colour': 'White:FFF', 'description': 'All import related fields like currency, conversion rate, import total, import grand total etc are available in
\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.', 'doctype': 'DocField', - 'fieldname': 'imports', + 'fieldname': 'fs_imports', 'fieldtype': 'Check', 'label': 'Imports' }, @@ -176,7 +177,7 @@ 'colour': 'White:FFF', 'description': 'Field available in Delivery Note, Quotation, Receivable Voucher, Sales Order', 'doctype': 'DocField', - 'fieldname': 'discounts', + 'fieldname': 'fs_discounts', 'fieldtype': 'Check', 'label': 'Discounts' }, @@ -186,7 +187,7 @@ 'colour': 'White:FFF', 'description': 'To track any installation or commissioning related work after sales', 'doctype': 'DocField', - 'fieldname': 'after_sales_installations', + 'fieldname': 'fs_after_sales_installations', 'fieldtype': 'Check', 'label': 'After Sale Installations' }, @@ -195,7 +196,7 @@ { 'description': 'Available in \nBill Of Materials, Delivery Note, Payable Voucher, Production Order, Purchase Order, Purchase Receipt, Receivable Voucher, Sales Order, Stock Entry, Timesheet', 'doctype': 'DocField', - 'fieldname': 'projects', + 'fieldname': 'fs_projects', 'fieldtype': 'Check', 'label': 'Projects' }, @@ -205,7 +206,7 @@ 'colour': 'White:FFF', 'description': 'If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity', 'doctype': 'DocField', - 'fieldname': 'sales_extras', + 'fieldname': 'fs_sales_extras', 'fieldtype': 'Check', 'label': 'Sales Extras' }, @@ -222,7 +223,7 @@ 'colour': 'White:FFF', 'description': 'If you involve in manufacturing activity
\nEnables item Is Manufactured', 'doctype': 'DocField', - 'fieldname': 'manufacturing', + 'fieldname': 'fs_manufacturing', 'fieldtype': 'Check', 'label': 'Manufacturing' }, @@ -238,7 +239,7 @@ 'colour': 'White:FFF', 'description': 'If you follow Quality Inspection
\nEnables item QA Required and QA No in Purchase Receipt', 'doctype': 'DocField', - 'fieldname': 'quality', + 'fieldname': 'fs_quality', 'fieldtype': 'Check', 'label': 'Quality' }, @@ -248,7 +249,7 @@ 'colour': 'White:FFF', 'description': 'To enable Point of Sale features', 'doctype': 'DocField', - 'fieldname': 'pos', + 'fieldname': 'fs_pos', 'fieldtype': 'Check', 'label': 'Point of Sale' }, @@ -265,7 +266,7 @@ 'colour': 'White:FFF', 'description': 'If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page', 'doctype': 'DocField', - 'fieldname': 'page_break', + 'fieldname': 'fs_page_break', 'fieldtype': 'Check', 'label': 'Page Break' }, @@ -281,7 +282,7 @@ 'colour': 'White:FFF', 'description': 'Enables More Info. in all documents', 'doctype': 'DocField', - 'fieldname': 'more_info', + 'fieldname': 'fs_more_info', 'fieldtype': 'Check', 'label': 'More Info' } diff --git a/setup/doctype/order_lost_reason/__init__.py b/erpnext/setup/doctype/import_data_control/__init__.py similarity index 100% rename from setup/doctype/order_lost_reason/__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/other_charges/__init__.py b/erpnext/setup/doctype/item_group/__init__.py similarity index 100% rename from setup/doctype/other_charges/__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/period/__init__.py b/erpnext/setup/doctype/manage_account/__init__.py similarity index 100% rename from setup/doctype/period/__init__.py rename to erpnext/setup/doctype/manage_account/__init__.py diff --git a/setup/doctype/manage_account/manage_account.js b/erpnext/setup/doctype/manage_account/manage_account.js similarity index 100% rename from setup/doctype/manage_account/manage_account.js rename to erpnext/setup/doctype/manage_account/manage_account.js diff --git a/setup/doctype/manage_account/manage_account.py b/erpnext/setup/doctype/manage_account/manage_account.py similarity index 98% rename from setup/doctype/manage_account/manage_account.py rename to erpnext/setup/doctype/manage_account/manage_account.py index a0ed2fadd2..651794fa16 100644 --- a/setup/doctype/manage_account/manage_account.py +++ b/erpnext/setup/doctype/manage_account/manage_account.py @@ -29,7 +29,7 @@ class DocType: set_default(defkey, defvalue) if defkey == 'fiscal_year': - ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", defvalue) + ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", cstr(defvalue)) ysd = ysd and ysd[0][0] or '' if ysd: set_default('year_start_date', ysd.strftime('%Y-%m-%d')) diff --git a/setup/doctype/manage_account/manage_account.txt b/erpnext/setup/doctype/manage_account/manage_account.txt similarity index 100% rename from setup/doctype/manage_account/manage_account.txt rename to erpnext/setup/doctype/manage_account/manage_account.txt diff --git a/setup/doctype/period_control/__init__.py b/erpnext/setup/doctype/market_segment/__init__.py similarity index 100% rename from setup/doctype/period_control/__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/permission_control/__init__.py b/erpnext/setup/doctype/naming_series/__init__.py similarity index 100% rename from setup/doctype/permission_control/__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/personalize/__init__.py b/erpnext/setup/doctype/naming_series_options/__init__.py similarity index 100% rename from setup/doctype/personalize/__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/price_list/__init__.py b/erpnext/setup/doctype/notification_control/__init__.py similarity index 100% rename from setup/doctype/price_list/__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/print_heading/__init__.py b/erpnext/setup/doctype/order_lost_reason/__init__.py similarity index 100% rename from setup/doctype/print_heading/__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/role/__init__.py b/erpnext/setup/doctype/other_charges/__init__.py similarity index 100% rename from setup/doctype/role/__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/sales_browser_control/__init__.py b/erpnext/setup/doctype/period/__init__.py similarity index 100% rename from setup/doctype/sales_browser_control/__init__.py rename to erpnext/setup/doctype/period/__init__.py diff --git a/setup/doctype/period/period.js b/erpnext/setup/doctype/period/period.js similarity index 100% rename from setup/doctype/period/period.js rename to erpnext/setup/doctype/period/period.js diff --git a/setup/doctype/period/period.txt b/erpnext/setup/doctype/period/period.txt similarity index 100% rename from setup/doctype/period/period.txt rename to erpnext/setup/doctype/period/period.txt diff --git a/setup/doctype/sales_partner/__init__.py b/erpnext/setup/doctype/period_control/__init__.py similarity index 100% rename from setup/doctype/sales_partner/__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/sales_person/__init__.py b/erpnext/setup/doctype/permission_control/__init__.py similarity index 100% rename from setup/doctype/sales_person/__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/series_detail/__init__.py b/erpnext/setup/doctype/personalize/__init__.py similarity index 100% rename from setup/doctype/series_detail/__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/setup_control/__init__.py b/erpnext/setup/doctype/price_list/__init__.py similarity index 100% rename from setup/doctype/setup_control/__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/setup_wizard_control/__init__.py b/erpnext/setup/doctype/print_heading/__init__.py similarity index 100% rename from setup/doctype/setup_wizard_control/__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/sms_settings/__init__.py b/erpnext/setup/doctype/role/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from setup/doctype/sms_settings/__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/state/__init__.py b/erpnext/setup/doctype/sales_browser_control/__init__.py similarity index 100% rename from setup/doctype/state/__init__.py rename to erpnext/setup/doctype/sales_browser_control/__init__.py diff --git a/setup/doctype/sales_browser_control/sales_browser_control.py b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py similarity index 99% rename from setup/doctype/sales_browser_control/sales_browser_control.py rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.py index d4c4a1316b..e9f8242450 100644 --- a/setup/doctype/sales_browser_control/sales_browser_control.py +++ b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.py @@ -131,7 +131,7 @@ class DocType: r = eval(args) - if r['lft'] == 0: + if r['lft'] == 0 and r['action'] != 'Create': n = sql("select lft,rgt from `tab%s` where name = '%s'"%(r['node_title'],r['nm'])) r['lft'] = n[0][0] r['rgt'] = n[0][1] @@ -212,4 +212,4 @@ class DocType: if res: msgprint("'%s' record is already exist."%(r['nm'])) return 'true' - return 'false' \ No newline at end of file + return 'false' diff --git a/setup/doctype/sales_browser_control/sales_browser_control.txt b/erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt similarity index 100% rename from setup/doctype/sales_browser_control/sales_browser_control.txt rename to erpnext/setup/doctype/sales_browser_control/sales_browser_control.txt diff --git a/setup/doctype/static_parameter_detail/__init__.py b/erpnext/setup/doctype/sales_partner/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from setup/doctype/static_parameter_detail/__init__.py rename to erpnext/setup/doctype/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/supplier_type/__init__.py b/erpnext/setup/doctype/sales_person/__init__.py similarity index 100% rename from setup/doctype/supplier_type/__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/target_detail/__init__.py b/erpnext/setup/doctype/series_detail/__init__.py similarity index 100% rename from setup/doctype/target_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/term/__init__.py b/erpnext/setup/doctype/setup_control/__init__.py similarity index 100% rename from setup/doctype/term/__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 61e3a82cb3..55b967e14a 100644 --- a/setup/doctype/setup_control/setup_control.py +++ b/erpnext/setup/doctype/setup_control/setup_control.py @@ -52,8 +52,7 @@ class DocType: 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 @@ class DocType: # 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 @@ class DocType: if (cp_defaults==args['account_name']) and user_profile and \ (total_users==cint(args['total_users'])): return 'True' - \ No newline at end of file + 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/territory/__init__.py b/erpnext/setup/doctype/setup_wizard_control/__init__.py similarity index 100% rename from setup/doctype/territory/__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/uom/__init__.py b/erpnext/setup/doctype/sms_settings/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from setup/doctype/uom/__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/update_series/__init__.py b/erpnext/setup/doctype/state/__init__.py similarity index 100% rename from setup/doctype/update_series/__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/upload_accounts_transactions/__init__.py b/erpnext/setup/doctype/static_parameter_detail/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from setup/doctype/upload_accounts_transactions/__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/warehouse_type/__init__.py b/erpnext/setup/doctype/supplier_type/__init__.py similarity index 100% rename from setup/doctype/warehouse_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/workflow_action_detail/__init__.py b/erpnext/setup/doctype/target_detail/__init__.py similarity index 100% rename from setup/doctype/workflow_action_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/workflow_engine/__init__.py b/erpnext/setup/doctype/term/__init__.py similarity index 100% rename from setup/doctype/workflow_engine/__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/workflow_rule/__init__.py b/erpnext/setup/doctype/territory/__init__.py similarity index 100% rename from setup/doctype/workflow_rule/__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/workflow_rule_detail/__init__.py b/erpnext/setup/doctype/uom/__init__.py similarity index 100% rename from setup/doctype/workflow_rule_detail/__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/page/__init__.py b/erpnext/setup/doctype/update_series/__init__.py similarity index 100% rename from setup/page/__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/page/import_data/__init__.py b/erpnext/setup/doctype/upload_accounts_transactions/__init__.py similarity index 100% rename from setup/page/import_data/__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/page/people/__init__.py b/erpnext/setup/doctype/warehouse_type/__init__.py similarity index 100% rename from setup/page/people/__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/page/permission_engine/__init__.py b/erpnext/setup/doctype/workflow_action_detail/__init__.py similarity index 100% rename from setup/page/permission_engine/__init__.py rename to erpnext/setup/doctype/workflow_action_detail/__init__.py diff --git a/setup/doctype/workflow_action_detail/workflow_action_detail.txt b/erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt similarity index 100% rename from setup/doctype/workflow_action_detail/workflow_action_detail.txt rename to erpnext/setup/doctype/workflow_action_detail/workflow_action_detail.txt diff --git a/setup/page/setup/__init__.py b/erpnext/setup/doctype/workflow_engine/__init__.py similarity index 100% rename from setup/page/setup/__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/page/setup_wizard/__init__.py b/erpnext/setup/doctype/workflow_rule/__init__.py similarity index 100% rename from setup/page/setup_wizard/__init__.py rename to erpnext/setup/doctype/workflow_rule/__init__.py diff --git a/setup/doctype/workflow_rule/workflow_rule.js b/erpnext/setup/doctype/workflow_rule/workflow_rule.js similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.js rename to erpnext/setup/doctype/workflow_rule/workflow_rule.js diff --git a/setup/doctype/workflow_rule/workflow_rule.py b/erpnext/setup/doctype/workflow_rule/workflow_rule.py similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.py rename to erpnext/setup/doctype/workflow_rule/workflow_rule.py diff --git a/setup/doctype/workflow_rule/workflow_rule.txt b/erpnext/setup/doctype/workflow_rule/workflow_rule.txt similarity index 100% rename from setup/doctype/workflow_rule/workflow_rule.txt rename to erpnext/setup/doctype/workflow_rule/workflow_rule.txt diff --git a/setup/page/webforms/__init__.py b/erpnext/setup/doctype/workflow_rule_detail/__init__.py similarity index 100% rename from setup/page/webforms/__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/stock/__init__.py b/erpnext/setup/page/__init__.py similarity index 100% rename from stock/__init__.py rename to erpnext/setup/page/__init__.py diff --git a/stock/doctype/__init__.py b/erpnext/setup/page/import_data/__init__.py similarity index 100% rename from stock/doctype/__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 95% rename from setup/page/import_data/import_data.html rename to erpnext/setup/page/import_data/import_data.html index 5b30dd28cf..d227c2c0be 100644 --- a/setup/page/import_data/import_data.html +++ b/erpnext/setup/page/import_data/import_data.html @@ -45,7 +45,7 @@

Import Log:

- +