setup fixes

This commit is contained in:
Rushabh Mehta
2011-06-23 22:36:27 +05:30
parent 9838f7935b
commit adce217e05

View File

@@ -18,164 +18,164 @@ convert_to_lists = webnotes.conn.convert_to_lists
class DocType: class DocType:
def __init__(self, d, dl): def __init__(self, d, dl):
self.doc, self.doclist = d, dl self.doc, self.doclist = d, dl
#Default Naming Series #Default Naming Series
#--------------------------------------------------- #---------------------------------------------------
def naming_series(self): def naming_series(self):
ns = [['TDS Payment', 'TDSP'], ['Payable Voucher', 'BILL'], ['Journal Voucher', 'JV'], ['Receivable Voucher', 'INV'], ['Lead', 'Lead'], ['Indent', 'IDT'], ['Enquiry', 'Enquiry'], ['Purchase Order', 'PO'], ['Quotation', 'QTN'], ['Purchase Receipt', 'GRN'], ['Stock Entry', 'STE'], ['Sales Order', 'SO'], ['Delivery Note', 'DN'], ['Employee', 'EMP/']] ns = [['TDS Payment', 'TDSP'], ['Payable Voucher', 'BILL'], ['Journal Voucher', 'JV'], ['Receivable Voucher', 'INV'], ['Lead', 'Lead'], ['Indent', 'IDT'], ['Enquiry', 'Enquiry'], ['Purchase Order', 'PO'], ['Quotation', 'QTN'], ['Purchase Receipt', 'GRN'], ['Stock Entry', 'STE'], ['Sales Order', 'SO'], ['Delivery Note', 'DN'], ['Employee', 'EMP/']]
for r in ns: for r in ns:
rec = Document('Naming Series') rec = Document('Naming Series')
rec.select_doc_for_series = r[0] rec.select_doc_for_series = r[0]
rec.new_series = r[1] rec.new_series = r[1]
rec_obj = get_obj(doc=rec) rec_obj = get_obj(doc=rec)
rec_obj.add_series() rec_obj.add_series()
# set account details # set account details
#----------------------- #-----------------------
def set_account_details(self, args): def set_account_details(self, args):
args = eval(args) args = eval(args)
self.set_cp_defaults(args['company_name'], args['industry'], args['time_zone'], args['country'], args['account_name']) self.set_cp_defaults(args['company_name'], args['industry'], args['time_zone'], args['country'], args['account_name'])
self.create_profile(args['user'], args['first_name'], args['last_name']) self.create_profile(args['user'], args['first_name'], args['last_name'])
self.update_client_control() self.update_client_control()
# Account Setup # Account Setup
# --------------- # ---------------
def setup_account(self, args): def setup_account(self, args):
company_name, comp_abbr, fy_start, currency = eval(args) company_name, comp_abbr, fy_start, currency = eval(args)
curr_fiscal_year,fy_start_date = self.get_fy_details(fy_start) curr_fiscal_year,fy_start_date = self.get_fy_details(fy_start)
self.currency = currency self.currency = currency
# Fiscal Year # Fiscal Year
master_dict = {'Fiscal Year':{'year':curr_fiscal_year, master_dict = {'Fiscal Year':{'year':curr_fiscal_year,
'year_start_date':fy_start_date}} 'year_start_date':fy_start_date}}
self.create_records(master_dict) self.create_records(master_dict)
# Company # Company
master_dict = {'Company':{'company_name':company_name, master_dict = {'Company':{'company_name':company_name,
'abbr':comp_abbr 'abbr':comp_abbr
}} }}
self.create_records(master_dict) self.create_records(master_dict)
def_args = {'current_fiscal_year':curr_fiscal_year, def_args = {'current_fiscal_year':curr_fiscal_year,
'default_currency': currency, 'default_currency': currency,
'default_company':company_name, 'default_company':company_name,
'default_valuation_method':'FIFO', 'default_valuation_method':'FIFO',
'date_format':'dd-mm-yyyy', 'date_format':'dd-mm-yyyy',
'default_currency_format':'Lacs', 'default_currency_format':'Lacs',
'so_required':'No', 'so_required':'No',
'dn_required':'No', 'dn_required':'No',
'po_required':'No', 'po_required':'No',
'pr_required':'No', 'pr_required':'No',
'emp_created_by':'Naming Series', 'emp_created_by':'Naming Series',
'cust_master_name':'Customer Name', 'cust_master_name':'Customer Name',
'supp_master_name':'Supplier Name'} 'supp_master_name':'Supplier Name'}
# Set # Set
self.set_defaults(def_args) self.set_defaults(def_args)
# Set Registration Complete # Set Registration Complete
set_default('registration_complete','1') set_default('registration_complete','1')
import webnotes.utils import webnotes.utils
return webnotes.utils.get_defaults() return webnotes.utils.get_defaults()
# Get Fiscal year Details # Get Fiscal year Details
# ------------------------ # ------------------------
def get_fy_details(self, fy_start): def get_fy_details(self, fy_start):
st = {'1st Jan':'01-01','1st Apr':'04-01','1st Jul':'07-01', '1st Oct': '10-01'} st = {'1st Jan':'01-01','1st Apr':'04-01','1st Jul':'07-01', '1st Oct': '10-01'}
curr_year = getdate(nowdate()).year curr_year = getdate(nowdate()).year
if cint(getdate(nowdate()).month) < cint((st[fy_start].split('-'))[0]): if cint(getdate(nowdate()).month) < cint((st[fy_start].split('-'))[0]):
curr_year = getdate(nowdate()).year - 1 curr_year = getdate(nowdate()).year - 1
stdt = cstr(curr_year)+'-'+cstr(st[fy_start]) stdt = cstr(curr_year)+'-'+cstr(st[fy_start])
#eddt = sql("select DATE_FORMAT(DATE_SUB(DATE_ADD('%s', INTERVAL 1 YEAR), INTERVAL 1 DAY),'%%d-%%m-%%Y')" % (stdt.split('-')[2]+ '-' + stdt.split('-')[1] + '-' + stdt.split('-')[0])) #eddt = sql("select DATE_FORMAT(DATE_SUB(DATE_ADD('%s', INTERVAL 1 YEAR), INTERVAL 1 DAY),'%%d-%%m-%%Y')" % (stdt.split('-')[2]+ '-' + stdt.split('-')[1] + '-' + stdt.split('-')[0]))
if(fy_start == '1st Jan'): if(fy_start == '1st Jan'):
fy = cstr(getdate(nowdate()).year) fy = cstr(getdate(nowdate()).year)
else: else:
fy = cstr(curr_year) + '-' + cstr(curr_year+1) fy = cstr(curr_year) + '-' + cstr(curr_year+1)
return fy,stdt return fy,stdt
# Create Company and Fiscal Year # Create Company and Fiscal Year
# ------------------------------- # -------------------------------
def create_records(self, master_dict): def create_records(self, master_dict):
for d in master_dict.keys(): for d in master_dict.keys():
rec = Document(d) rec = Document(d)
for fn in master_dict[d].keys(): for fn in master_dict[d].keys():
rec.fields[fn] = master_dict[d][fn] rec.fields[fn] = master_dict[d][fn]
# add blank fields # add blank fields
for fn in rec.fields: for fn in rec.fields:
if fn not in master_dict[d].keys()+['name','owner','doctype']: if fn not in master_dict[d].keys()+['name','owner','doctype']:
rec.fields[fn] = '' rec.fields[fn] = ''
rec_obj = get_obj(doc=rec) rec_obj = get_obj(doc=rec)
rec_obj.doc.save(1) rec_obj.doc.save(1)
if hasattr(rec_obj, 'on_update'): if hasattr(rec_obj, 'on_update'):
rec_obj.on_update() rec_obj.on_update()
# Set System Defaults # Set System Defaults
# -------------------- # --------------------
def set_defaults(self, def_args): def set_defaults(self, def_args):
ma_obj = get_obj('Manage Account','Manage Account') ma_obj = get_obj('Manage Account','Manage Account')
for d in def_args.keys(): for d in def_args.keys():
ma_obj.doc.fields[d] = def_args[d] ma_obj.doc.fields[d] = def_args[d]
ma_obj.doc.save() ma_obj.doc.save()
ma_obj.update_cp() ma_obj.update_cp()
# Set Control Panel Defaults # Set Control Panel Defaults
# -------------------------- # --------------------------
def set_cp_defaults(self, cname, industry, timezone, country, acc_name): def set_cp_defaults(self, cname, industry, timezone, country, acc_name):
cp = Document('Control Panel','Control Panel') cp = Document('Control Panel','Control Panel')
cp.account_id = acc_name cp.account_id = acc_name
cp.company_name = cname cp.company_name = cname
cp.industry = industry cp.industry = industry
cp.time_zone = timezone cp.time_zone = timezone
cp.country = country cp.country = country
cp.client_name = '<div style="padding:4px; font-size:20px;">'+cname+'</div>' cp.client_name = '<div style="padding:4px; font-size:20px;">'+cname+'</div>'
cp.save() cp.save()
# Create Profile # Create Profile
# -------------- # --------------
def create_profile(self, user_email, user_fname, user_lname): def create_profile(self, user_email, user_fname, user_lname):
pr = Document('Profile') pr = Document('Profile')
pr.first_name = user_fname pr.first_name = user_fname
pr.last_name = user_lname pr.last_name = user_lname
pr.email = user_email pr.email = user_email
pr.enabled = 1 pr.enabled = 1
pr.save(1) pr.save(1)
self.add_roles(pr) self.add_roles(pr)
def add_roles(self, pr): def add_roles(self, pr):
roles_list = ['System Manager','Sales Manager','Sales User','Purchase Manager','Purchase User','Material Manager','Material User','Accounts Manager','Accounts User','HR Manager','HR User','Production Manager','Production User','Sales Master Manager','Purchase Master Manager','Material Master Manager','Quality Manager','Maintenance User','Maintenance Manager'] roles_list = ['System Manager','Sales Manager','Sales User','Purchase Manager','Purchase User','Material Manager','Material User','Accounts Manager','Accounts User','HR Manager','HR User','Production Manager','Production User','Sales Master Manager','Purchase Master Manager','Material Master Manager','Quality Manager','Maintenance User','Maintenance Manager']
for r in roles_list: for r in roles_list:
d = addchild(pr, 'userroles', 'UserRole', 1) d = addchild(pr, 'userroles', 'UserRole', 1)
d.role = r d.role = r
d.save(1) d.save(1)
# Add roles to Administrator profile # Add roles to Administrator profile
pr_obj = get_obj('Profile','Administrator') pr_obj = get_obj('Profile','Administrator')
for r in roles_list: for r in roles_list:
d = addchild(pr_obj.doc,'userroles', 'UserRole', 1) d = addchild(pr_obj.doc,'userroles', 'UserRole', 1)
d.role = r d.role = r
d.save(1) d.save(1)
# Update WN ERP Client Control # Update WN ERP Client Control
# ----------------------------- # -----------------------------
def update_client_control(self): def update_client_control(self):
cl = Document('WN ERP Client Control','WN ERP Client Control') cl = Document('WN ERP Client Control','WN ERP Client Control')
cl.account_start_date = nowdate() cl.account_start_date = nowdate()
cl.total_users = 1 cl.total_users = 1
cl.is_trial_account = 1 cl.is_trial_account = 1
cl.save() cl.save()
# Sync DB # Sync DB
# ------- # -------
def sync_db(arg=''): def sync_db(arg=''):
import webnotes.model.db_schema import webnotes.model.db_schema
sql("delete from `tabDocType Update Register`") sql("delete from `tabDocType Update Register`")
webnotes.model.db_schema.sync_all() webnotes.model.db_schema.sync_all()