Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function store(Request $request)
- {
- try {
- DB::beginTransaction();
- $data = $request->input();
- $validator = Validator::make($data, [
- 'razao_social' => 'required',
- 'nome_fantasia' => 'required',
- 'telefone_1' => 'required',
- 'cnpj' => 'required',
- 'email_principal' => 'required',
- 'contact_name' => 'required',
- ]);
- if ($validator->fails()) {
- return redirect('company/create')->withErrors($validator)->withInput();
- }
- $create = Company::create($data);
- if (!$create) {
- 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.');
- }
- $password = $this->geraSenha();
- $username = str_replace('.', '', $request->input('cnpj'));
- $username = str_replace('/', '', $username);
- $username = str_replace('-', '', $username);
- $id = $create->id;
- $dataUser = [
- 'username' => $username,
- 'password' => bcrypt($password),
- 'company_id' => $id,
- 'type' => Config::get('constants.USER_TYPE_COMPANY'),
- 'status' => Config::get('constants.STATUS_ACTIVE'),
- ];
- $dataUser['profile_id'] = 2;
- $dataSchool = array(
- 'nome_compl_escola' => $request->input('razao_social'),
- 'nome_abrev_escola' => $request->input('nome_fantasia'),
- 'contato_escola' => $request->input('telefone_1'),
- 'company_id' => $id,
- );
- $encode = json_encode($dataSchool);
- $configuration['code'] = 1;
- $configuration['value'] = $encode;
- $configuration['company_id'] = $id;
- if (!Configuration::create($configuration)) {
- 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.');
- }
- Shift::init($id, $request->input('razao_social'));
- Department::init($id, $request->input('razao_social'));
- Office::init($id, $request->input('razao_social'));
- // Seguimentos de Series
- $infantil = Segment::initEnsinoInfantil($id, $request->input('razao_social'));
- $fundamentalI = Segment::initFundamentalI($id, $request->input('razao_social'));
- $fundamentalII = Segment::initFundamentalII($id, $request->input('razao_social'));
- // Series (grupos)
- Serie::initEnsinoInfantil($id, $request->input('razao_social'), $infantil->id);
- Serie::initFundamentalI($id, $request->input('razao_social'), $fundamentalI->id);
- Serie::initFundamentalII($id, $request->input('razao_social'), $fundamentalII->id);
- Mail::send('emails.welcome', ['dataCompany' => $data, 'dataUser' => $dataUser, 'password' => $password], function ($m) use ($data) {
- $m->from('yuri@simplespravoce.com', 'Equipe SGES');
- $m->to($data['email_principal'], $data['contact_name'])->subject('Nova empresa cadastrada.');
- });
- if (!User::create($dataUser)) {
- 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.');
- }
- Session::flash('success', 'Empresa criada com sucesso!');
- DB::commit();
- return Redirect::to('/company');
- } catch (\Exception $e) {
- DB::rollBack();
- Session::flash('fail', $e->getMessage());
- return Redirect::to('/company/create');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement