blob: 55d3296566ac86ce83e2aaebe553e4ce53c6fc58 [file] [log] [blame]
Rushabh Mehta37b4d752015-11-09 16:53:11 +05301frappe.provide("erpnext.wiz");
2
3frappe.pages['setup-wizard'].on_page_load = function(wrapper) {
4 if(sys_defaults.company) {
5 frappe.set_route("desk");
6 return;
7 }
Anand Doshi1ed82832015-11-16 12:58:14 +05308};
Rushabh Mehta37b4d752015-11-09 16:53:11 +05309
Anand Doshi1ed82832015-11-16 12:58:14 +053010function load_erpnext_slides() {
11 $.extend(erpnext.wiz, {
Rushabh Mehta20038ad2016-07-21 16:01:59 +053012 select_domain: {
13 domains: ["all"],
14 title: __('Select your Domain'),
Anand Doshi1ed82832015-11-16 12:58:14 +053015 fields: [
Neil Trini Lasrado342895c2016-03-04 15:41:27 +053016 {fieldname:'domain', label: __('Domain'), fieldtype:'Select',
Neil Trini Lasrado1b03e0a2016-03-07 16:57:05 +053017 options: [
Anand Doshi01792422016-03-09 16:31:53 +053018 {"label": __("Distribution"), "value": "Distribution"},
Rushabh Mehta20038ad2016-07-21 16:01:59 +053019 {"label": __("Education"), "value": "Education"},
Anand Doshi01792422016-03-09 16:31:53 +053020 {"label": __("Manufacturing"), "value": "Manufacturing"},
21 {"label": __("Retail"), "value": "Retail"},
Rushabh Mehta20038ad2016-07-21 16:01:59 +053022 {"label": __("Services"), "value": "Services"}
Neil Trini Lasrado1b03e0a2016-03-07 16:57:05 +053023 ], reqd:1},
Rushabh Mehta20038ad2016-07-21 16:01:59 +053024 ],
25 help: __('Select the nature of your business.'),
26 onload: function(slide) {
27 slide.get_input("domain").on("change", function() {
28 frappe.wiz.domain = $(this).val();
29 frappe.wizard.refresh_slides();
30 });
31 },
32 css_class: "single-column"
33 },
34 org: {
35 domains: ["all"],
36 title: __("The Organization"),
37 icon: "icon-building",
38 fields: [
39 {fieldname:'company_name',
40 label: frappe.wiz.domain==='Education' ?
41 __('Institute Name') : __('Company Name'),
42 fieldtype:'Data', reqd:1},
43 {fieldname:'company_abbr',
44 label: frappe.wiz.domain==='Education' ?
45 __('Institute Abbreviation') : __('Company Abbreviation'),
46 fieldtype:'Data'},
47 {fieldname:'company_tagline',
48 label: __('What does it do?'),
49 fieldtype:'Data',
50 placeholder: frappe.wiz.domain==='Education' ?
51 __('e.g. "Primary School" or "University"') :
52 __('e.g. "Build tools for builders"'),
53 reqd:1},
54 {fieldname:'bank_account', label: __('Bank Name'), fieldtype:'Data', reqd:1},
Anand Doshi1ed82832015-11-16 12:58:14 +053055 {fieldname:'chart_of_accounts', label: __('Chart of Accounts'),
56 options: "", fieldtype: 'Select'},
Rushabh Mehta37b4d752015-11-09 16:53:11 +053057
Anand Doshi1ed82832015-11-16 12:58:14 +053058 // TODO remove this
59 {fieldtype: "Section Break"},
60 {fieldname:'fy_start_date', label:__('Financial Year Start Date'), fieldtype:'Date',
61 description: __('Your financial year begins on'), reqd:1},
62 {fieldname:'fy_end_date', label:__('Financial Year End Date'), fieldtype:'Date',
63 description: __('Your financial year ends on'), reqd:1},
64 ],
Rushabh Mehta20038ad2016-07-21 16:01:59 +053065 help: (frappe.wiz.domain==='Education' ?
66 __('The name of the institute for which you are setting up this system.'):
67 __('The name of your company for which you are setting up this system.')),
Rushabh Mehta37b4d752015-11-09 16:53:11 +053068
Anand Doshi1ed82832015-11-16 12:58:14 +053069 onload: function(slide) {
70 erpnext.wiz.org.load_chart_of_accounts(slide);
71 erpnext.wiz.org.bind_events(slide);
72 erpnext.wiz.org.set_fy_dates(slide);
73 },
74
Anand Doshi5c3469a2015-11-24 17:06:54 +053075 validate: function() {
76 // validate fiscal year start and end dates
77 if (this.values.fy_start_date=='Invalid date' || this.values.fy_end_date=='Invalid date') {
78 msgprint(__("Please enter valid Financial Year Start and End Dates"));
79 return false;
80 }
81
82 if ((this.values.company_name || "").toLowerCase() == "company") {
83 msgprint(__("Company Name cannot be Company"));
84 return false;
85 }
86
87 return true;
88 },
89
Anand Doshi1ed82832015-11-16 12:58:14 +053090 css_class: "single-column",
91
92 set_fy_dates: function(slide) {
Rushabh Mehta20038ad2016-07-21 16:01:59 +053093 var country = frappe.wizard.values.country;
Anand Doshi1ed82832015-11-16 12:58:14 +053094
95 if(country) {
96 var fy = erpnext.wiz.fiscal_years[country];
97 var current_year = moment(new Date()).year();
98 var next_year = current_year + 1;
99 if(!fy) {
100 fy = ["01-01", "12-31"];
101 next_year = current_year;
102 }
103
104 slide.get_field("fy_start_date").set_input(current_year + "-" + fy[0]);
105 slide.get_field("fy_end_date").set_input(next_year + "-" + fy[1]);
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530106 }
107
Anand Doshi1ed82832015-11-16 12:58:14 +0530108 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530109
Anand Doshi1ed82832015-11-16 12:58:14 +0530110 load_chart_of_accounts: function(slide) {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530111 var country = frappe.wizard.values.country;
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530112
Anand Doshi1ed82832015-11-16 12:58:14 +0530113 if(country) {
114 frappe.call({
115 method: "erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts.get_charts_for_country",
116 args: {"country": country},
117 callback: function(r) {
118 if(r.message) {
119 slide.get_input("chart_of_accounts").empty()
120 .add_options(r.message);
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530121
Anand Doshi1ed82832015-11-16 12:58:14 +0530122 if (r.message.length===1) {
123 var field = slide.get_field("chart_of_accounts");
124 field.set_value(r.message[0]);
125 field.df.hidden = 1;
126 field.refresh();
127 }
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530128 }
129 }
Anand Doshi1ed82832015-11-16 12:58:14 +0530130 })
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530131 }
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530132 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530133
Anand Doshi1ed82832015-11-16 12:58:14 +0530134 bind_events: function(slide) {
135 slide.get_input("company_name").on("change", function() {
136 var parts = slide.get_input("company_name").val().split(" ");
137 var abbr = $.map(parts, function(p) { return p ? p.substr(0,1) : null }).join("");
138 slide.get_field("company_abbr").set_input(abbr.slice(0, 5).toUpperCase());
139 }).val(frappe.boot.sysdefaults.company_name || "").trigger("change");
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530140
Anand Doshi1ed82832015-11-16 12:58:14 +0530141 slide.get_input("company_abbr").on("change", function() {
142 if(slide.get_input("company_abbr").val().length > 5) {
143 msgprint("Company Abbreviation cannot have more than 5 characters");
144 slide.get_field("company_abbr").set_input("");
145 }
146 });
147
148 // TODO remove this
149 slide.get_input("fy_start_date").on("change", function() {
150 var year_end_date =
151 frappe.datetime.add_days(frappe.datetime.add_months(
152 frappe.datetime.user_to_obj(slide.get_input("fy_start_date").val()), 12), -1);
153 slide.get_input("fy_end_date").val(frappe.datetime.obj_to_user(year_end_date));
154
155 });
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530156 }
157 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530158
Anand Doshi1ed82832015-11-16 12:58:14 +0530159 branding: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530160 domains: ["all"],
Anand Doshi1ed82832015-11-16 12:58:14 +0530161 icon: "icon-bookmark",
162 title: __("The Brand"),
163 help: __('Upload your letter head and logo. (you can edit them later).'),
164 fields: [
165 {fieldtype:"Attach Image", fieldname:"attach_letterhead",
166 label: __("Attach Letterhead"),
Anand Doshi2af44ff2015-12-09 17:28:51 +0530167 description: __("Keep it web friendly 900px (w) by 100px (h)"),
168 is_private: 0
Anand Doshi1ed82832015-11-16 12:58:14 +0530169 },
170 {fieldtype: "Column Break"},
171 {fieldtype:"Attach Image", fieldname:"attach_logo",
172 label:__("Attach Logo"),
Anand Doshi2af44ff2015-12-09 17:28:51 +0530173 description: __("100px by 100px"),
174 is_private: 0
175 },
Anand Doshi1ed82832015-11-16 12:58:14 +0530176 ],
177
178 css_class: "two-column"
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530179 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530180
Anand Doshi1ed82832015-11-16 12:58:14 +0530181 users: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530182 domains: ["all"],
Anand Doshi1ed82832015-11-16 12:58:14 +0530183 icon: "icon-money",
Neil Trini Lasrado3c0d5cb2016-02-24 15:58:25 +0530184 title: __("Add Users"),
185 help: __("Add users to your organization, other than yourself"),
186 fields: [],
Anand Doshi1ed82832015-11-16 12:58:14 +0530187 before_load: function(slide) {
188 slide.fields = [];
189 for(var i=1; i<5; i++) {
190 slide.fields = slide.fields.concat([
191 {fieldtype:"Section Break"},
192 {fieldtype:"Data", fieldname:"user_fullname_"+ i,
193 label:__("Full Name")},
194 {fieldtype:"Data", fieldname:"user_email_" + i,
195 label:__("Email ID"), placeholder:__("user@example.com"),
196 options: "Email"},
197 {fieldtype:"Column Break"},
198 {fieldtype: "Check", fieldname: "user_sales_" + i,
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530199 label:__("Sales"), "default": 1,
200 hidden: frappe.wiz.domain==='Education' ? 1 : 0},
Anand Doshi1ed82832015-11-16 12:58:14 +0530201 {fieldtype: "Check", fieldname: "user_purchaser_" + i,
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530202 label:__("Purchaser"), "default": 1,
203 hidden: frappe.wiz.domain==='Education' ? 1 : 0},
Anand Doshi1ed82832015-11-16 12:58:14 +0530204 {fieldtype: "Check", fieldname: "user_accountant_" + i,
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530205 label:__("Accountant"), "default": 1,
206 hidden: frappe.wiz.domain==='Education' ? 1 : 0},
Anand Doshi1ed82832015-11-16 12:58:14 +0530207 ]);
208 }
209 },
210 css_class: "two-column"
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530211 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530212
Anand Doshi1ed82832015-11-16 12:58:14 +0530213 taxes: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530214 domains: ['manufacturing', 'services', 'retail', 'distribution'],
Anand Doshi1ed82832015-11-16 12:58:14 +0530215 icon: "icon-money",
Neil Trini Lasrado3c0d5cb2016-02-24 15:58:25 +0530216 title: __("Add Taxes"),
217 help: __("List your tax heads (e.g. VAT, Customs etc; they should have unique names) and their standard rates. This will create a standard template, which you can edit and add more later."),
Anand Doshi1ed82832015-11-16 12:58:14 +0530218 "fields": [],
219 before_load: function(slide) {
220 slide.fields = [];
221 for(var i=1; i<4; i++) {
222 slide.fields = slide.fields.concat([
223 {fieldtype:"Section Break"},
224 {fieldtype:"Data", fieldname:"tax_"+ i, label:__("Tax") + " " + i,
225 placeholder:__("e.g. VAT") + " " + i},
226 {fieldtype:"Column Break"},
227 {fieldtype:"Float", fieldname:"tax_rate_" + i, label:__("Rate (%)"), placeholder:__("e.g. 5")},
228 ]);
229 }
230 },
231 css_class: "two-column"
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530232 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530233
Anand Doshi1ed82832015-11-16 12:58:14 +0530234 customers: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530235 domains: ['manufacturing', 'services', 'retail', 'distribution'],
Anand Doshi1ed82832015-11-16 12:58:14 +0530236 icon: "icon-group",
Neil Trini Lasrado3c0d5cb2016-02-24 15:58:25 +0530237 title: __("Your Customers"),
238 help: __("List a few of your customers. They could be organizations or individuals."),
239 fields: [],
Anand Doshi1ed82832015-11-16 12:58:14 +0530240 before_load: function(slide) {
241 slide.fields = [];
242 for(var i=1; i<6; i++) {
243 slide.fields = slide.fields.concat([
244 {fieldtype:"Section Break"},
245 {fieldtype:"Data", fieldname:"customer_" + i, label:__("Customer") + " " + i,
246 placeholder:__("Customer Name")},
247 {fieldtype:"Column Break"},
248 {fieldtype:"Data", fieldname:"customer_contact_" + i,
249 label:__("Contact Name") + " " + i, placeholder:__("Contact Name")}
250 ])
251 }
252 slide.fields[1].reqd = 1;
253 },
254 css_class: "two-column"
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530255 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530256
Anand Doshi1ed82832015-11-16 12:58:14 +0530257 suppliers: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530258 domains: ['manufacturing', 'services', 'retail', 'distribution'],
Anand Doshi1ed82832015-11-16 12:58:14 +0530259 icon: "icon-group",
Neil Trini Lasrado3c0d5cb2016-02-24 15:58:25 +0530260 title: __("Your Suppliers"),
261 help: __("List a few of your suppliers. They could be organizations or individuals."),
262 fields: [],
Anand Doshi1ed82832015-11-16 12:58:14 +0530263 before_load: function(slide) {
264 slide.fields = [];
265 for(var i=1; i<6; i++) {
266 slide.fields = slide.fields.concat([
267 {fieldtype:"Section Break"},
268 {fieldtype:"Data", fieldname:"supplier_" + i, label:__("Supplier")+" " + i,
269 placeholder:__("Supplier Name")},
270 {fieldtype:"Column Break"},
271 {fieldtype:"Data", fieldname:"supplier_contact_" + i,
272 label:__("Contact Name") + " " + i, placeholder:__("Contact Name")},
273 ])
274 }
275 slide.fields[1].reqd = 1;
276 },
277 css_class: "two-column"
278 },
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530279
Anand Doshi1ed82832015-11-16 12:58:14 +0530280 items: {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530281 domains: ['manufacturing', 'services', 'retail', 'distribution'],
Anand Doshi1ed82832015-11-16 12:58:14 +0530282 icon: "icon-barcode",
Neil Trini Lasrado3c0d5cb2016-02-24 15:58:25 +0530283 title: __("Your Products or Services"),
284 help: __("List your products or services that you buy or sell. Make sure to check the Item Group, Unit of Measure and other properties when you start."),
285 fields: [],
Anand Doshi1ed82832015-11-16 12:58:14 +0530286 before_load: function(slide) {
287 slide.fields = [];
288 for(var i=1; i<6; i++) {
289 slide.fields = slide.fields.concat([
290 {fieldtype:"Section Break", show_section_border: true},
291 {fieldtype:"Data", fieldname:"item_" + i, label:__("Item") + " " + i,
292 placeholder:__("A Product or Service")},
293 {fieldtype:"Select", label:__("Group"), fieldname:"item_group_" + i,
294 options:[__("Products"), __("Services"),
295 __("Raw Material"), __("Consumable"), __("Sub Assemblies")],
296 "default": __("Products")},
297 {fieldtype:"Select", fieldname:"item_uom_" + i, label:__("UOM"),
298 options:[__("Unit"), __("Nos"), __("Box"), __("Pair"), __("Kg"), __("Set"),
Rushabh Mehtae0686b32016-06-10 12:34:41 +0530299 __("Hour"), __("Minute"), __("Litre"), __("Meter"), __("Gram")],
Anand Doshi1ed82832015-11-16 12:58:14 +0530300 "default": __("Unit")},
301 {fieldtype: "Check", fieldname: "is_sales_item_" + i, label:__("We sell this Item"), default: 1},
302 {fieldtype: "Check", fieldname: "is_purchase_item_" + i, label:__("We buy this Item")},
303 {fieldtype:"Column Break"},
304 {fieldtype:"Currency", fieldname:"item_price_" + i, label:__("Rate")},
Anand Doshi2af44ff2015-12-09 17:28:51 +0530305 {fieldtype:"Attach Image", fieldname:"item_img_" + i, label:__("Attach Image"), is_private: 0},
Anand Doshi1ed82832015-11-16 12:58:14 +0530306 ])
307 }
308 slide.fields[1].reqd = 1;
309
310 // dummy data
311 slide.fields.push({fieldtype: "Section Break"});
312 slide.fields.push({fieldtype: "Check", fieldname: "add_sample_data",
313 label: __("Add a few sample records"), "default": 1});
314 },
315 css_class: "two-column"
316 },
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530317
318 program: {
319 domains: ["education"],
320 title: __("Program"),
321 help: __("Example: Masters in Computer Science"),
322 fields: [],
323 before_load: function(slide) {
324 slide.fields = [];
325 for(var i=1; i<6; i++) {
326 slide.fields = slide.fields.concat([
327 {fieldtype:"Section Break", show_section_border: true},
328 {fieldtype:"Data", fieldname:"program_" + i, label:__("Program") + " " + i, placeholder: __("Program Name")},
329 ])
330 }
331 slide.fields[1].reqd = 1;
332 },
333 css_class: "single-column"
334 },
335
336 course: {
337 domains: ["education"],
338 title: __("Course"),
339 help: __("Example: Basic Mathematics"),
340 fields: [],
341 before_load: function(slide) {
342 slide.fields = [];
343 for(var i=1; i<6; i++) {
344 slide.fields = slide.fields.concat([
345 {fieldtype:"Section Break", show_section_border: true},
346 {fieldtype:"Data", fieldname:"course_" + i, label:__("Course") + " " + i, placeholder: __("Course Name")},
347 ])
348 }
349 slide.fields[1].reqd = 1;
350 },
351 css_class: "single-column"
352 },
353
354
355 instructor: {
356 domains: ["education"],
357 title: __("Instructor"),
358 help: __("People who teach at your organisation"),
359 fields: [],
360 before_load: function(slide) {
361 slide.fields = [];
362 for(var i=1; i<6; i++) {
363 slide.fields = slide.fields.concat([
364 {fieldtype:"Section Break", show_section_border: true},
365 {fieldtype:"Data", fieldname:"instructor_" + i, label:__("Instructor") + " " + i, placeholder: __("Instructor Name")},
366 ])
367 }
368 slide.fields[1].reqd = 1;
369 },
370 css_class: "single-column"
371 },
372
373 room: {
374 domains: ["education"],
375 title: __("Room"),
376 help: __("Classrooms/ Laboratories etc where lectures can be scheduled."),
377 fields: [],
378 before_load: function(slide) {
379 slide.fields = [];
380 for(var i=1; i<4; i++) {
381 slide.fields = slide.fields.concat([
382 {fieldtype:"Section Break", show_section_border: true},
383 {fieldtype:"Data", fieldname:"room_" + i, label:__("Room") + " " + i},
384 {fieldtype:"Column Break"},
385 {fieldtype:"Int", fieldname:"room_capacity_" + i, label:__("Room") + " " + i + " Capacity"},
386 ])
387 }
388 slide.fields[1].reqd = 1;
389 },
390 css_class: "two-column"
391 },
Anand Doshi1ed82832015-11-16 12:58:14 +0530392 });
393
394 // Source: https://en.wikipedia.org/wiki/Fiscal_year
395 // default 1st Jan - 31st Dec
396
397 erpnext.wiz.fiscal_years = {
398 "Afghanistan": ["12-20", "12-21"],
399 "Australia": ["07-01", "06-30"],
400 "Bangladesh": ["07-01", "06-30"],
401 "Canada": ["04-01", "03-31"],
402 "Costa Rica": ["10-01", "09-30"],
403 "Egypt": ["07-01", "06-30"],
404 "Hong Kong": ["04-01", "03-31"],
405 "India": ["04-01", "03-31"],
406 "Iran": ["06-23", "06-22"],
407 "Italy": ["07-01", "06-30"],
408 "Myanmar": ["04-01", "03-31"],
409 "New Zealand": ["04-01", "03-31"],
410 "Pakistan": ["07-01", "06-30"],
411 "Singapore": ["04-01", "03-31"],
412 "South Africa": ["03-01", "02-28"],
413 "Thailand": ["10-01", "09-30"],
414 "United Kingdom": ["04-01", "03-31"],
415 };
416};
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530417
418frappe.wiz.on("before_load", function() {
Anand Doshi1ed82832015-11-16 12:58:14 +0530419 load_erpnext_slides();
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530420
421 frappe.wiz.add_slide(erpnext.wiz.select_domain);
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530422 frappe.wiz.add_slide(erpnext.wiz.org);
423 frappe.wiz.add_slide(erpnext.wiz.branding);
Anand Doshi31771382016-07-05 21:34:21 +0530424
425 if (!(frappe.boot.limits && frappe.boot.limits.users===1)) {
426 frappe.wiz.add_slide(erpnext.wiz.users);
427 }
428
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530429 frappe.wiz.add_slide(erpnext.wiz.taxes);
430 frappe.wiz.add_slide(erpnext.wiz.customers);
431 frappe.wiz.add_slide(erpnext.wiz.suppliers);
432 frappe.wiz.add_slide(erpnext.wiz.items);
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530433 frappe.wiz.add_slide(erpnext.wiz.program);
434 frappe.wiz.add_slide(erpnext.wiz.course);
435 frappe.wiz.add_slide(erpnext.wiz.instructor);
436 frappe.wiz.add_slide(erpnext.wiz.room);
437
Rushabh Mehta7e472f82016-07-21 18:01:42 +0530438 if(frappe.wizard && frappe.wizard.domain && frappe.wizard.domain !== 'Education') {
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530439 frappe.wiz.welcome_page = "#welcome-to-erpnext";
440 }
Rushabh Mehta37b4d752015-11-09 16:53:11 +0530441});
Rushabh Mehta20038ad2016-07-21 16:01:59 +0530442
443test_values_edu = {
444 "language":"english",
445 "domain":"Education",
446 "country":"India",
447 "timezone":"Asia/Kolkata",
448 "currency":"INR",
449 "first_name":"Tester",
450 "email":"test@example.com",
451 "password":"test",
452 "company_name":"Hogwarts",
453 "company_abbr":"HS",
454 "company_tagline":"School for magicians",
455 "bank_account":"Gringotts Wizarding Bank",
456 "fy_start_date":"2016-04-01",
457 "fy_end_date":"2017-03-31"
458}