Merge branch 'stable' into latest
Conflicts:
erpnext/home/page/event_updates/event_updates.js
diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js
index 9a76d16..99e8605 100644
--- a/erpnext/home/page/event_updates/event_updates.js
+++ b/erpnext/home/page/event_updates/event_updates.js
@@ -613,7 +613,7 @@
// complete registration
if(in_list(user_roles,'System Manager')) {
wn.require("erpnext/home/page/event_updates/complete_registration.js");
- pscript.complete_registration(r.message.registration_complete);
+ pscript.complete_registration(r.message.registration_complete, r.message.profile);
}
// setup wizard
@@ -624,6 +624,114 @@
);
}
+// complete my company registration
+// --------------------------------
+pscript.complete_registration = function(is_complete, profile) {
+ if(is_complete == 'No'){
+ var d = new Dialog(400, 200, "Setup your Account");
+ if(user != 'Administrator'){
+ d.no_cancel(); // Hide close image
+ $dh(page_body.wntoolbar.wrapper);
+ }
+
+ d.make_body([
+ ['HTML', 'Your Profile Details', '<h4>Your Profile Details</h4>'],
+ ['Data', 'First Name'],
+ ['Data', 'Last Name'],
+ ['HTML', 'Company Details', '<h4>Create your first company</h4>'],
+ ['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;
+ }
+
+ if(profile && profile.length>0) {
+ if(profile[0].first_name && profile[0].first_name!='None') {
+ d.widgets['First Name'].value = profile[0].first_name;
+ }
+
+ if(profile[0].last_name && profile[0].last_name!='None') {
+ d.widgets['Last Name'].value = profile[0].last_name;
+ }
+ }
+
+ //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,
+ d.widgets['First Name'].value,
+ d.widgets['Last Name'].value
+ ];
+
+ $c_obj('Setup Control','setup_account',JSON.stringify(args),function(r, rt){
+ sys_defaults = r.message.sys_defaults;
+ user_fullname = r.message.user_fullname;
+ d.hide();
+ $ds(page_body.wntoolbar.wrapper);
+ $('#user_fullname').html(user_fullname + " (Profile Settings)");
+ });
+ } else {
+ d.widgets['Save'].done_working();
+ }
+ }
+ d.show();
+ }
+}
+
+// make dialog fields
+// ------------------
+pscript.make_dialog_field = function(d)
+{
+ // fiscal year format
+ fisc_format = d.widgets['Fiscal Year Start Date'];
+ add_sel_options(fisc_format, ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct']);
+
+ // default currency
+ currency_list = ['', 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BYR', 'BZD', 'CAD', 'CDF', 'CFA', 'CFP', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'EUR', 'EURO', 'FJD', 'FKP', 'FMG', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GQE', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZM', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NRs', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RMB', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SCR', 'SDG', 'SDR', 'SEK', 'SGD', 'SHP', 'SOS', 'SRD', 'STD', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TRY', 'TTD', 'TWD', 'TZS', 'UAE', 'UAH', 'UGX', 'USD', 'USh', 'UYU', 'UZS', 'VEB', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YEN', 'YER', 'YTL', 'ZAR', 'ZMK', 'ZWR'];
+ currency = d.widgets['Default Currency'];
+ add_sel_options(currency, currency_list);
+}
+
+
+// validate fields
+// ---------------
+pscript.validate_fields = function(d)
+{
+ var lst = ['First Name', 'Company Name', 'Company Abbreviation', 'Fiscal Year Start Date', 'Default Currency'];
+ var msg = 'Please enter the following fields\n';
+ var flag = 1;
+ for(var i=0; i<lst.length; i++)
+ {
+ if(!d.widgets[lst[i]].value || d.widgets[lst[i]].value=='None'){
+ flag = 0;
+ msg = msg + NEWLINE + lst[i];
+ }
+ }
+
+ if(!flag) alert(msg);
+ return flag;
+}
+
SetupWizard = function(status) {
var me = this;
$.extend(this, {
diff --git a/erpnext/home/page/event_updates/event_updates.py b/erpnext/home/page/event_updates/event_updates.py
index 1d1d1b2..e4690d0 100644
--- a/erpnext/home/page/event_updates/event_updates.py
+++ b/erpnext/home/page/event_updates/event_updates.py
@@ -36,7 +36,10 @@
'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(),
- 'registration_complete': cint(get_defaults('registration_complete')) and 'Yes' or 'No'
+ 'registration_complete': cint(get_defaults('registration_complete')) and 'Yes' or 'No',
+ 'profile': webnotes.conn.sql("""\
+ SELECT first_name, last_name FROM `tabProfile`
+ WHERE name=%s AND docstatus<2""", webnotes.user.name, as_dict=1)
}
return ret
@@ -89,4 +92,4 @@
return ''
return {'ret': ret, 'percent': percent}
-
\ No newline at end of file
+
diff --git a/erpnext/setup/doctype/setup_control/setup_control.py b/erpnext/setup/doctype/setup_control/setup_control.py
index 55b967e..6616338 100644
--- a/erpnext/setup/doctype/setup_control/setup_control.py
+++ b/erpnext/setup/doctype/setup_control/setup_control.py
@@ -47,9 +47,17 @@
# Account Setup
# ---------------
def setup_account(self, args):
- company_name, comp_abbr, fy_start, currency = eval(args)
+ import webnotes
+ company_name, comp_abbr, fy_start, currency, first_name, last_name = eval(args)
curr_fiscal_year,fy_start_date = self.get_fy_details(fy_start)
self.currency = currency
+
+ # Update Profile
+ if last_name=='None': last_name = None
+ webnotes.conn.sql("""\
+ UPDATE `tabProfile` SET first_name=%s, last_name=%s
+ WHERE name=%s AND docstatus<2""", (first_name, last_name, webnotes.user.name))
+
# Fiscal Year
master_dict = {'Fiscal Year':{'year':curr_fiscal_year, 'year_start_date':fy_start_date}}
@@ -66,6 +74,7 @@
'default_currency': currency,
'default_company':company_name,
'default_valuation_method':'FIFO',
+ 'default_stock_uom':'Nos',
'date_format':'dd-mm-yyyy',
'default_currency_format':'Lacs',
'so_required':'No',
@@ -87,7 +96,8 @@
msgprint("Great! Your company has now been created")
import webnotes.utils
- return webnotes.utils.get_defaults()
+ user_fullname = (first_name or '') + (last_name and (" " + last_name) or '')
+ return {'sys_defaults': webnotes.utils.get_defaults(), 'user_fullname': user_fullname}
# Get Fiscal year Details