Advertisement
Guest User

Untitled

a guest
Nov 6th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 18.24 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers\Usuarios;
  4.  
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\DB;
  9. use App\Pessoa;
  10. use App\Enderecos;
  11. use App\PessoaContato;
  12. use App\ConfirmaDados;
  13. use App\Mail\SenConfirmation;
  14. use Illuminate\Support\Facades\Mail;
  15. use Illuminate\Support\Facades\Storage;
  16. use Illuminate\Support\Facades\Hash;
  17. use App\Usuario;
  18. use Illuminate\Database\QueryException;
  19. use App\Mail\SendResetPassword;
  20. use App\lib\CustomException;
  21. use App\lib\UspsTest;
  22. use App\Configuration;
  23. use Route;
  24. use Carbon\Carbon;
  25.  
  26. class UsuarioController extends Controller
  27. {
  28.     private $pass;
  29.     private $enable_pay;
  30.    
  31.     public function renderHome()
  32.     {
  33.         $configs = Configuration::find(1);
  34.        
  35.  
  36.         return view('usuario.home', ['configs' => $configs, 'enable_pay' => $this->getLiberationStatus()]);
  37.     }
  38.  
  39.     public function gerarSuite()
  40.     {
  41.         $first_suite = "CB#100";
  42.         $last_suite = Pessoa::orderBy('codigo_suite', 'desc')->first();
  43.         //return $last_suite;
  44.         if ($last_suite > $first_suite) {
  45.             $intid = array_map('intval', explode('#', $last_suite->codigo_suite));
  46.             $suiteID = "CB#".++$intid[0];
  47.         } else {
  48.             $intid = array_map('intval', explode('#', $first_suite));
  49.             $suiteID = "CB#".++$intid[0];
  50.         }
  51.         return $suiteID;
  52.     }
  53.  
  54.     public function cadastrar(Request $request)
  55.     {
  56.         try {
  57.             //$suite = $this->gerarSuite();
  58.             //$pass = password_hash($request->password, PASSWORD_BCRYPT);
  59.             $pass = Hash::make($request->password);
  60.             $token = uniqid('', true);
  61.             $data_nascimento = $request->data_nascimento;
  62.        
  63.             DB::insert(
  64.                 "INSERT INTO bxby_pessoas (nome_completo,
  65.                                                   tipo_cadastro,
  66.                                                  type_user,
  67.                                                  data_nascimento,                                                  
  68.                                                  email,
  69.                                                  password,                                                  
  70.                                                  tipo_pessoa,
  71.                                                  onde_conheceu)
  72.                                            VALUES (?,?,?,?,?,?,?,?)",
  73.                                             [
  74.                                                 $request->_nome,
  75.                                                 1,
  76.                                                 2,
  77.                                                 $data_nascimento,
  78.                                                 $request->email,
  79.                                                 $pass,
  80.                                                 1,
  81.                                                 $request->ondeconheceu
  82.                                             ]
  83.             );
  84.  
  85.             $suiteId = DB::getPdo()->lastInsertId();
  86.  
  87.             DB::insert("INSERT INTO bxby_pconfirma_dados (codigo_suite, data_cadastro) VALUES (?, ?)", [$suiteId, new Carbon()]);
  88.  
  89.             DB::insert(
  90.                 "INSERT INTO bxby_pendereco (codigo_suite,
  91.                             codigo_postal,
  92.                            endereco,
  93.                            numero,
  94.                            complemento,
  95.                            bairro,
  96.                            cidade,
  97.                            estado,
  98.                            pais)
  99.                    VALUES (?,?,?,?,?,?,?,?,?)",
  100.                 [
  101.                         $suiteId,
  102.                         $request->cep,
  103.                         $request->endereco,
  104.                         $request->numero,
  105.                         $request->complemento,
  106.                         $request->bairro,
  107.                         $request->cidade,
  108.                         $request->uf,
  109.                         'BR'
  110.                     ]
  111.             );
  112.  
  113.             DB::insert(
  114.                 "INSERT INTO bxby_pcontato (codigo_suite,
  115.                           celular)
  116.                   VALUES (?,?)",
  117.                 [
  118.                     $suiteId,
  119.                     $request->celular
  120.                 ]
  121.             );
  122.        
  123.  
  124.             Mail::to($request->input('email'))->send(new SenConfirmation($suiteId, $request->email));
  125.        
  126.             return response()->json(['msg' => 'Cadastro efetuado com sucesso!', 'status' => '1']);
  127.         } catch (QueryException $e) {
  128.             return CustomException::trataErro($e);
  129.         }
  130.     }
  131.        
  132.  
  133.     public function enablePayment($suite)
  134.     {
  135.         $enable_customer = DB::table('bxby_pconfirma_dados')->where('codigo_suite', $suite)->get();
  136.         // dd($enable_customer);
  137.         if ($enable_customer[0]->caminho_rg != '' && $enable_customer[0]->caminho_comprovante != '') {
  138.             DB::table('bxby_pconfirma_dados')->where('codigo_suite', $suite)->update(['libera_pagamento' => '1']);
  139.         }
  140.         return response()->json(['msg' => 'Função pagamento liberado para o cliente!', 'status' => '1']);
  141.     }
  142.  
  143.     public function login(Request $request)
  144.     {
  145.         try {
  146.             $credentials = $request->only('email', 'password');
  147.            
  148.             if (Auth::attempt($credentials)) {
  149.                 //Auth::logoutOtherDevices($request->password);
  150.                 if (Auth::user()->type_user == '1') {
  151.                     return redirect()->intended('/admin/pessoas');
  152.                 } else {
  153.                     session(['suite_prefix' => 'CB#']);
  154.                     return redirect()->intended('/usuario/home');
  155.                 }
  156.             } else {
  157.                 return redirect(route('login'))->with('login-err', 'Usuario ou senha inválidos. Tente novamente.');
  158.             }
  159.         } catch (\Exception $ex) {
  160.             return CustomException::trataErroGeral($ex);
  161.         }
  162.     }
  163.  
  164.     public function logout()
  165.     {
  166.         try {
  167.             session()->flush();
  168.             Auth::logout();
  169.             return redirect('/');
  170.         } catch (\Exception $ex) {
  171.             return CustomException::trataErroGeral($ex);
  172.         }
  173.     }
  174.  
  175.     public function perfil($id)
  176.     {
  177.         try {
  178.             $perfil = Pessoa::find($id);
  179.             $perfil_endereco = Enderecos::where('codigo_suite', $id)->get();
  180.             $perfil_contato = PessoaContato::where(['codigo_suite' => $id])->get();
  181.             $estado_civil = DB::table('bxby_estado_civil')->get();
  182.             $data = DB::table('bxby_pconfirma_dados')->where(['codigo_suite' => Auth::user()->codigo_suite])->get();
  183.  
  184.             return view('usuario.meuperfil', ['perfil' => $perfil,
  185.                                               'perfil_endereco' => $perfil_endereco,
  186.                                               'contato' => $perfil_contato,
  187.                                               'estado_civil' => $estado_civil,
  188.                                               'data' => $data]);
  189.         } catch (QueryException $e) {
  190.             return CustomException::trataErro($e);
  191.         }
  192.     }
  193.  
  194.     public function getLiberationStatus()
  195.     {
  196.         $this->enable_pay = DB::table('bxby_pconfirma_dados')
  197.                         ->select('libera_pagamento')
  198.                         ->where('codigo_suite', Auth::user()->codigo_suite)->get();
  199.  
  200.         return $this->enable_pay;
  201.     }
  202.  
  203.     public function perfilEdit($id)
  204.     {
  205.         try {
  206.             $perfil = Pessoa::find($id);
  207.             $perfil_endereco = Enderecos::where('codigo_suite', $id)->get();
  208.             $perfil_contato = PessoaContato::where(['codigo_suite' => $id])->get();
  209.             $estado_civil = DB::table('bxby_estado_civil')->get();
  210.             $data = DB::table('bxby_pconfirma_dados')->where(['codigo_suite' => Auth::user()->codigo_suite])->get();
  211.  
  212.             return view('usuario.perfiledit', [
  213.                 'perfil' => $perfil,
  214.                 'perfil_endereco' => $perfil_endereco,
  215.                 'contato' => $perfil_contato,
  216.                 'estado_civil' => $estado_civil,
  217.                 'data' => $data,
  218.                 'enable_pay' => $this->getLiberationStatus()
  219.             ]);
  220.         } catch (QueryException $e) {
  221.             return CustomException::trataErro($e);
  222.         }
  223.     }
  224.  
  225.     public function atualizar(Request $request, $id)
  226.     {
  227.         try {
  228.             if ($request->nova_senha != '' && $request->nova_senha == $request->confirma_nova_senha) {
  229.                 $pass = Hash::make($request->input('nova_senha'));
  230.                 $update_pass = "update bxby_pessoas set password = '$pass'";
  231.                 DB::update($update_pass);
  232.             } else {
  233.                 $pass = '';
  234.             }
  235.            
  236.             $dataformat = date('Y-m-d', strtotime($request->data_nascimento));
  237.             DB::update("UPDATE bxby_pessoas
  238.                        SET nome_completo = '$request->_nome',                            
  239.                            data_nascimento = '$dataformat',
  240.                            sexo = '$request->sexo',
  241.                            email = '$request->email',                            
  242.                            cpf_cnpj = '$request->cpf_cnpj',
  243.                            rg_ie = '$request->rg_ie',
  244.                            estado_civil = '$request->estado_civil'
  245.                            where codigo_suite = $id");
  246.  
  247.             DB::update("UPDATE bxby_pcontato
  248.                                        SET telefone = '$request->telefone',
  249.                                            celular = '$request->celular',
  250.                                            telefone_01 = '$request->telefone_01',
  251.                                            celular_01 = '$request->celular_01'
  252.                                        WHERE CODIGO_SUITE = $id");
  253.  
  254.             return response()->json(['msg' => 'Registro atualizado com sucesso!', 'status' => '1']);
  255.         } catch (QueryException $ex) {
  256.             return CustomException::trataErro($ex);
  257.         }
  258.     }
  259.  
  260.     public function uploadImgPerfil(Request $request)
  261.     {
  262.         try {
  263.             if ($request->hasFile('file')) {
  264.                 $filename = str_random(30) . '.' . $request->file('file')->getClientOriginalExtension();
  265.                
  266.                 $user_folder = 'foto_perfil_'.$request->id;
  267.    
  268.                 $destination = public_path() . DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder;
  269.    
  270.                 $fullpath = DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder . DIRECTORY_SEPARATOR . $filename;
  271.    
  272.                 if (Storage::allFiles($user_folder) == []) {
  273.                     $request->file('file')->move($destination, $filename);
  274.                     DB::table('bxby_pessoas')->where('codigo_suite', $request->id)->update(['caminho_foto_perfil' => $fullpath]);
  275.                 } else {
  276.                     $files = Storage::files($user_folder);
  277.                     if (count($files) != 0) {
  278.                         Storage::delete($files[0]);
  279.                         $request->file('file')->move($destination, $filename);
  280.                         DB::table('bxby_pessoas')->where('codigo_suite', $request->id)->update(['caminho_foto_perfil' => $fullpath]);
  281.                     }
  282.                 }
  283.             }
  284.  
  285.             return response()->json(['msg' => 'Foto inserida com sucesso!', 'status' => '1']);
  286.         } catch (QueryException $ex) {
  287.             return CustomException::trataErro($ex);
  288.         }
  289.     }
  290.  
  291.     public function uploadDocRG(Request $request)
  292.     {
  293.         try {
  294.             if ($request->hasFile('file')) {
  295.                 $filename = uniqid('DOC_RG_', true) . '.' . $request->file('file')->clientExtension();
  296.  
  297.                 $user_folder = 'docs_perfil_'.$request->id;
  298.  
  299.                 $destination = public_path() . DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder;
  300.  
  301.                 $fullpath = DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder . DIRECTORY_SEPARATOR . $filename;
  302.            
  303.                 if (Storage::allFiles($user_folder) == []) {
  304.                     $request->file('file')->move($destination, $filename);
  305.                     DB::table('bxby_pconfirma_dados')->where('codigo_suite', $request->id)->update(['caminho_rg' => $fullpath]);
  306.                 } else {
  307.                     $files = Storage::files($user_folder);
  308.                     if (count($files[0]) != 0) {
  309.                         Storage::delete($files[0]);
  310.                         $request->file('file')->move($destination, $filename);
  311.                         DB::table('bxby_pconfirma_dados')->where('codigo_suite', $request->id)->update(['caminho_rg' => $fullpath]);
  312.                     }
  313.                 }
  314.             }
  315.  
  316.             return response()->json(['msg' => 'Documento cadastrado com sucesso', 'status' => '1']);
  317.         } catch (QueryException $ex) {
  318.             return CustomException::trataErro($ex);
  319.         }
  320.     }
  321.  
  322.     public function uploadDocComprovante(Request $request)
  323.     {
  324.         try {
  325.             if ($request->hasFile('file')) {
  326.                 $filename = uniqid('DOC_COMPROVANTE_', true) . '.' . $request->file('file')->clientExtension();
  327.  
  328.                 $user_folder = 'docs_perfil_'.$request->id;
  329.  
  330.                 $destination = public_path() . DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder;
  331.  
  332.                 $fullpath = DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . $user_folder . DIRECTORY_SEPARATOR . $filename;
  333.            
  334.                 if (Storage::allFiles($user_folder) == []) {
  335.                     $request->file('file')->move($destination, $filename);
  336.                     DB::table('bxby_pconfirma_dados')->where('codigo_suite', $request->id)->update(['caminho_comprovante' => $fullpath]);
  337.                 } else {
  338.                     $files = Storage::files($user_folder);
  339.                     if (count($files[0]) != 0) {
  340.                         Storage::delete($files[0]);
  341.                         $request->file('file')->move($destination, $filename);
  342.                         DB::table('bxby_pconfirma_dados')->where('codigo_suite', $request->id)->update(['caminho_comprovante' => $fullpath]);
  343.                     }
  344.                 }
  345.             }
  346.  
  347.             return response()->json(['msg' => 'Documento cadastrado com sucesso', 'status' => '1']);
  348.         } catch (QueryException $ex) {
  349.             return CustomException::trataErro($ex);
  350.         }
  351.     }
  352.  
  353.     public function resetToken()
  354.     {
  355.         try {
  356.             $token_reset = uniqid('', true);
  357.             return $token_reset;
  358.         } catch (\Exception $ex) {
  359.             return CustomException::trataErroGeral($ex);
  360.         }
  361.     }
  362.  
  363.     public function sendEmailReset(Request $request)
  364.     {
  365.         try {
  366.             $token_reset = $this->resetToken();
  367.             $user_id = DB::table('bxby_pessoas')->select(['codigo_suite'])->where('email', $request->input('email-esqueci'))->get();
  368.        
  369.             //return $user_id[0]->codigo_suite;
  370.             DB::table('bxby_pconfirma_dados')
  371.                 ->where('codigo_suite', $user_id[0]->codigo_suite)
  372.                 ->update(['token_troca' => $token_reset]);
  373.  
  374.             Mail::to($request->input('email-esqueci'))->send(new SendResetPassword($token_reset, $user_id[0]->codigo_suite));
  375.             return response()->json(['msg' => 'Mensagem enviada com sucesso!', 'status' => '1']);
  376.             //return redirect('/');
  377.         } catch (\Exception $ex) {
  378.             return CustomException::trataErroGeral($ex);
  379.         }
  380.     }
  381.  
  382.     public function viewResetForm($token, $id)
  383.     {
  384.         try {
  385.             $token_troca = DB::table('bxby_pconfirma_dados')
  386.                                 ->select(['token_troca'])
  387.                                 ->where('codigo_suite', $id)
  388.                                 ->get();
  389.  
  390.             if ($token == $token_troca[0]->token_troca) {
  391.                 return view('emails.formReset', ['token' => $token, 'userid' => $id]);
  392.             }
  393.         } catch (\Exception $ex) {
  394.             return CustomException::trataErroGeral($ex);
  395.         }
  396.     }
  397.  
  398.     public function resetPassword(Request $request)
  399.     {
  400.         try {
  401.             DB::table('bxby_pconfirma_dados')
  402.                 ->where('codigo_suite', $request->input('id'))
  403.                 ->update(['troca_senha' => '1']);
  404.                
  405.             $token_troca_db = DB::table('bxby_pconfirma_dados')
  406.                                 ->select(['token_troca', 'troca_senha'])
  407.                                 ->where('codigo_suite', $request->id)
  408.                                 ->get();
  409.             //return $token_troca_db[0]->token_troca;
  410.             if ($request->input('token_senha') == $token_troca_db[0]->token_troca && $token_troca_db[0]->troca_senha == '1') {
  411.                 if ($request->password == $request->confirm_password) {
  412.                     DB::table('bxby_pessoas')
  413.                         ->where('codigo_suite', $request->id)
  414.                         ->update(['password' => password_hash($request->password, PASSWORD_BCRYPT)]);
  415.                    
  416.                     DB::table('bxby_pconfirma_dados')
  417.                         ->where('codigo_suite', $request->input('id'))
  418.                         ->update(['token_troca' => '', 'troca_senha' => '2']);
  419.                    
  420.                     return response()->json(['msg' => 'Senha alterada com sucesso!', 'status' => '1']);
  421.                 }
  422.             }
  423.         } catch (QueryException $e) {
  424.             return CustomException::trataErro($e);
  425.         }
  426.     }
  427.  
  428.     public function price()
  429.     {
  430.         try {
  431.             return view('usuario.calculadora');
  432.         } catch (\Exception $ex) {
  433.             return CustomException::trataErroGeral($ex);
  434.         }
  435.     }
  436.  
  437.     public function getFrete(Request $request)
  438.     {
  439.                
  440.         //return response()->json(['peso' => $request->peso, 'rota' => $request->rota]);
  441.         //$this->middleware('rota:'.$request->rota);
  442.         return UspsTest::calculate($request);
  443.     }
  444.  
  445.     public function clearFrete()
  446.     {
  447.         session()->forget('frete');
  448.         return response()->json(['msg' => 'Sessão limpa']);
  449.     }
  450. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement