blob: eeb39d60d59002340fbb3144650d205bd4a81128 [file] [log] [blame]
Rushabh Mehtae67d1fb2013-08-05 14:59:54 +05301// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
2// License: GNU General Public License v3. See license.txt
Rushabh Mehta12852e72012-02-29 15:11:06 +05303
4// complete my company registration
5// --------------------------------
Anand Doshi1ed4ef12012-04-27 15:30:23 +05306wn.provide('erpnext.complete_setup');
Rushabh Mehta12852e72012-02-29 15:11:06 +05307
Anand Doshi1ed4ef12012-04-27 15:30:23 +05308$.extend(erpnext.complete_setup, {
Anand Doshi1ed4ef12012-04-27 15:30:23 +05309 show: function() {
10 d = erpnext.complete_setup.prepare_dialog();
11 d.show();
12 },
Rushabh Mehta12852e72012-02-29 15:11:06 +053013
Anand Doshi2aa9ba62012-04-30 15:43:34 +053014 prepare_dialog: function() {
Rushabh Mehta2d700dd2012-10-01 14:46:37 +053015 var d = new wn.ui.Dialog({
Anand Doshi1ed4ef12012-04-27 15:30:23 +053016 title: "Setup",
17 fields: [
Bárbara Perrettif48ae142013-10-07 17:27:37 -030018 {fieldname:'first_name', label:wn._('Your First Name'), fieldtype:'Data', reqd: 1},
19 {fieldname:'last_name', label: wn._('Your Last Name'), fieldtype:'Data'},
20 {fieldname:'company_name', label:wn._('Company Name'), fieldtype:'Data', reqd:1,
21 description: wn._('e.g. "My Company LLC"')},
22 {fieldname:'company_abbr', label:wn._('Company Abbreviation'), fieldtype:'Data',
23 description:wn._('e.g. "MC"'),reqd:1},
24 {fieldname:'fy_start', label:wn._('Financial Year Start Date'), fieldtype:'Select',
25 description:wn._('Your financial year begins on"'), reqd:1,
Anand Doshi1ed4ef12012-04-27 15:30:23 +053026 options: erpnext.complete_setup.fy_start_list.join('\n')},
Bárbara Perrettif48ae142013-10-07 17:27:37 -030027 {fieldname:'country', label: wn._('Country'), reqd:1,
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053028 options: "", fieldtype: 'Select'},
Bárbara Perrettif48ae142013-10-07 17:27:37 -030029 {fieldname:'currency', label: wn._('Default Currency'), reqd:1,
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053030 options: "", fieldtype: 'Select'},
Bárbara Perrettif48ae142013-10-07 17:27:37 -030031 {fieldname:'timezone', label: wn._('Time Zone'), reqd:1,
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053032 options: "", fieldtype: 'Select'},
Bárbara Perrettif48ae142013-10-07 17:27:37 -030033 {fieldname:'industry', label: wn._('Industry'), reqd:1,
Rushabh Mehta982ad352013-07-10 18:39:06 +053034 options: erpnext.complete_setup.domains.join('\n'), fieldtype: 'Select'},
Bárbara Perrettif48ae142013-10-07 17:27:37 -030035 {fieldname:'update', label:wn._('Setup'),fieldtype:'Button'},
Anand Doshi1ed4ef12012-04-27 15:30:23 +053036 ],
Rushabh Mehta12852e72012-02-29 15:11:06 +053037 });
Anand Doshiafad0ef2013-07-10 12:00:26 +053038
Anand Doshi1ed4ef12012-04-27 15:30:23 +053039 if(user != 'Administrator'){
Anand Doshic8f4bda2013-07-16 16:51:55 +053040 d.$wrapper.find('.close').toggle(false); // Hide close image
Anand Doshi1ed4ef12012-04-27 15:30:23 +053041 $('header').toggle(false); // hide toolbar
42 }
43
Anand Doshia648f462013-07-30 14:42:15 +053044 wn.call({
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053045 method:"webnotes.country_info.get_country_timezone_info",
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053046 callback: function(data) {
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053047 erpnext.country_info = data.message.country_info;
48 erpnext.all_timezones = data.message.all_timezones;
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053049 d.get_input("country").empty()
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053050 .add_options([""].concat(keys(erpnext.country_info).sort()));
51 d.get_input("currency").empty()
52 .add_options(wn.utils.unique([""].concat($.map(erpnext.country_info,
53 function(opts, country) { return opts.currency; }))).sort());
54 d.get_input("timezone").empty()
55 .add_options([""].concat(erpnext.all_timezones));
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053056 }
57 })
58
Anand Doshi1ed4ef12012-04-27 15:30:23 +053059 // on clicking update
60 d.fields_dict.update.input.onclick = function() {
61 var data = d.get_values();
62 if(!data) return;
63 $(this).set_working();
Anand Doshi1fac2a92013-07-29 19:30:39 +053064 return $c_obj('Setup Control','setup_account',data,function(r, rt){
Rushabh Mehtae41bceb2013-07-10 20:42:44 +053065 $(this).done_working();
Anand Doshi7edb1912013-06-24 12:11:15 +053066 if(!r.exc) {
67 sys_defaults = r.message;
68 user_fullname = r.message.user_fullname;
69 wn.boot.user_info[user].fullname = user_fullname;
70 d.hide();
71 $('header').toggle(true);
72 wn.container.wntoolbar.set_user_name();
73
74 setTimeout(function() { window.location.reload(); }, 3000);
75 }
Anand Doshi1ed4ef12012-04-27 15:30:23 +053076 });
77 };
Rushabh Mehtae41bceb2013-07-10 20:42:44 +053078
79 d.fields_dict.company_name.input.onchange = function() {
80 var parts = d.get_input("company_name").val().split(" ");
81 var abbr = $.map(parts, function(p) { return p ? p.substr(0,1) : null }).join("");
82 d.get_input("company_abbr").val(abbr.toUpperCase());
83 }
84
Anand Doshi1ed4ef12012-04-27 15:30:23 +053085 d.fields_dict.country.input.onchange = function() {
86 var country = d.fields_dict.country.input.value;
87 var $timezone = $(d.fields_dict.timezone.input);
88 $timezone.empty();
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053089 // add country specific timezones first
Anand Doshi1ed4ef12012-04-27 15:30:23 +053090 if(country){
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053091 var timezone_list = erpnext.country_info[country].timezones || [];
92 $timezone.add_options(timezone_list.sort());
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053093
94 d.get_input("currency").val(erpnext.country_info[country].currency);
Anand Doshi1ed4ef12012-04-27 15:30:23 +053095 }
Anand Doshi6b2aa7e2013-05-20 13:43:50 +053096 // add all timezones at the end, so that user has the option to change it to any timezone
97 $timezone.add_options([""].concat(erpnext.all_timezones));
Rushabh Mehtadb7139a2013-01-17 18:22:22 +053098
Anand Doshi1ed4ef12012-04-27 15:30:23 +053099 };
100
101 // company name already set
102 if(wn.control_panel.company_name) {
103 var inp = d.fields_dict.company_name.input;
104 inp.value = wn.control_panel.company_name;
105 inp.disabled = true;
Anand Doshi9c2bb0e2013-07-16 16:56:28 +0530106 d.fields_dict.company_name.$input.trigger("change");
Anand Doshi1ed4ef12012-04-27 15:30:23 +0530107 }
108
109 // set first name, last name
110 if(user_fullname) {
111 u = user_fullname.split(' ');
112 if(u[0]) {
113 d.fields_dict.first_name.input.value = u[0];
114 }
115 if(u[1]) {
116 d.fields_dict.last_name.input.value = u[1];
117 }
118 }
119
Anand Doshiafad0ef2013-07-10 12:00:26 +0530120 return d;
Anand Doshi1ed4ef12012-04-27 15:30:23 +0530121 },
Rushabh Mehta12852e72012-02-29 15:11:06 +0530122
Anand Doshi1ed4ef12012-04-27 15:30:23 +0530123 fy_start_list: ['', '1st Jan', '1st Apr', '1st Jul', '1st Oct'],
Rushabh Mehtadb7139a2013-01-17 18:22:22 +0530124
Nabin Hait4af2dbf2013-08-12 12:24:08 +0530125 domains: ['', "Manufacturing", "Retail", "Distribution", "Services", "Other"],
Anand Doshi1ed4ef12012-04-27 15:30:23 +0530126});