Advertisement
Guest User

Untitled

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