Advertisement
Guest User

Untitled

a guest
Mar 6th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  1. public function store(Request $request)
  2. {
  3. try {
  4. DB::beginTransaction();
  5. $data = $request->input();
  6. $validator = Validator::make($data, [
  7. 'razao_social' => 'required',
  8. 'nome_fantasia' => 'required',
  9. 'telefone_1' => 'required',
  10. 'cnpj' => 'required',
  11. 'email_principal' => 'required',
  12. 'contact_name' => 'required',
  13. ]);
  14.  
  15. if ($validator->fails()) {
  16. return redirect('company/create')->withErrors($validator)->withInput();
  17. }
  18.  
  19. $create = Company::create($data);
  20. if (!$create) {
  21. throw new Exception('Não foi possivel realizar o cadastro de uma nova empresa. Por favor, tente novamente ou entre em contato com o Administrador.');
  22. }
  23. $password = $this->geraSenha();
  24. $username = str_replace('.', '', $request->input('cnpj'));
  25. $username = str_replace('/', '', $username);
  26. $username = str_replace('-', '', $username);
  27. $id = $create->id;
  28. $dataUser = [
  29. 'username' => $username,
  30. 'password' => bcrypt($password),
  31. 'company_id' => $id,
  32. 'type' => Config::get('constants.USER_TYPE_COMPANY'),
  33. 'status' => Config::get('constants.STATUS_ACTIVE'),
  34. ];
  35. $dataUser['profile_id'] = 2;
  36.  
  37. $dataSchool = array(
  38. 'nome_compl_escola' => $request->input('razao_social'),
  39. 'nome_abrev_escola' => $request->input('nome_fantasia'),
  40. 'contato_escola' => $request->input('telefone_1'),
  41. 'company_id' => $id,
  42. );
  43.  
  44. $encode = json_encode($dataSchool);
  45. $configuration['code'] = 1;
  46. $configuration['value'] = $encode;
  47. $configuration['company_id'] = $id;
  48. if (!Configuration::create($configuration)) {
  49. throw new Exception('Não foi possivel realizar o cadastro de configuração da empresa. Por favor, tente novamente ou entre em contato com o Administrador.');
  50. }
  51.  
  52. Shift::init($id, $request->input('razao_social'));
  53. Department::init($id, $request->input('razao_social'));
  54. Office::init($id, $request->input('razao_social'));
  55.  
  56. // Seguimentos de Series
  57. $infantil = Segment::initEnsinoInfantil($id, $request->input('razao_social'));
  58. $fundamentalI = Segment::initFundamentalI($id, $request->input('razao_social'));
  59. $fundamentalII = Segment::initFundamentalII($id, $request->input('razao_social'));
  60.  
  61. // Series (grupos)
  62. Serie::initEnsinoInfantil($id, $request->input('razao_social'), $infantil->id);
  63. Serie::initFundamentalI($id, $request->input('razao_social'), $fundamentalI->id);
  64. Serie::initFundamentalII($id, $request->input('razao_social'), $fundamentalII->id);
  65.  
  66. Mail::send('emails.welcome', ['dataCompany' => $data, 'dataUser' => $dataUser, 'password' => $password], function ($m) use ($data) {
  67. $m->from('yuri@simplespravoce.com', 'Equipe SGES');
  68. $m->to($data['email_principal'], $data['contact_name'])->subject('Nova empresa cadastrada.');
  69. });
  70.  
  71. if (!User::create($dataUser)) {
  72. throw new Exception('Não foi possivel realizar o cadastro do usuário da empresa. Por favor, tente novamente ou entre em contato com o Administrador.');
  73. }
  74.  
  75. Session::flash('success', 'Empresa criada com sucesso!');
  76. DB::commit();
  77.  
  78. return Redirect::to('/company');
  79. } catch (\Exception $e) {
  80. DB::rollBack();
  81. Session::flash('fail', $e->getMessage());
  82.  
  83. return Redirect::to('/company/create');
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement