First commit
This commit is contained in:
219
app/Http/Controllers/Auth/AuthController.php
Normal file
219
app/Http/Controllers/Auth/AuthController.php
Normal file
@@ -0,0 +1,219 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\User;
|
||||
use App\Verify_accounts;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Socialite;
|
||||
use Route;
|
||||
use Config;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function login(Request $request) {
|
||||
$request->validate([
|
||||
'email' => 'required|string|email',
|
||||
'password' => 'required|string',
|
||||
//'remember_me' => 'boolean'
|
||||
]);
|
||||
$credentials = request(['email', 'password']);
|
||||
if(!Auth::attempt($credentials))
|
||||
return response()->json([
|
||||
'message' => 'Unauthorized'
|
||||
], 401);
|
||||
$user = $request->user();
|
||||
$tokenResult = $user->createToken('Personal Access Token');
|
||||
$token = $tokenResult->token;
|
||||
if ($request->remember_me)
|
||||
$token->expires_at = Carbon::now()->addWeeks(1);
|
||||
$token->save();
|
||||
return response()->json([
|
||||
'access_token' => $tokenResult->accessToken,
|
||||
'token_type' => 'Bearer',
|
||||
'expires_at' => Carbon::parse(
|
||||
$tokenResult->token->expires_at
|
||||
)->toDateTimeString(),
|
||||
'userid' => $user->id,
|
||||
'role' => $user->role_id,
|
||||
'verified' => $user->phone_verified_at,
|
||||
'reported' => $user->reported
|
||||
]);
|
||||
}
|
||||
|
||||
public function fb(Request $request)
|
||||
{
|
||||
$params = [
|
||||
'grant_type' => 'social',
|
||||
'client_id' => '2', // it should be password grant client
|
||||
'client_secret' => config('app.secret'),
|
||||
'provider' => 'facebook',
|
||||
'access_token' => $request->access_token // access token from provider
|
||||
];
|
||||
|
||||
$requestToken = Request::create("/oauth/token", "POST", $params);
|
||||
$response = app()->handle($requestToken);
|
||||
$json = json_decode($response->content(), true);
|
||||
$user = User::where('social_id', $request->social_id) -> first();
|
||||
$frontend = json_encode([
|
||||
'token_type' => $json['token_type'],
|
||||
'expires_at' => $json['expires_in'],
|
||||
'access_token' => $json['access_token'],
|
||||
'userid' => $user->id,
|
||||
'role' => $user->role_id,
|
||||
'verified' => $user->phone_verified_at,
|
||||
'reported' => $user->reported
|
||||
]);
|
||||
return $frontend;
|
||||
}
|
||||
|
||||
public function google(Request $request)
|
||||
{
|
||||
$params = [
|
||||
'grant_type' => 'social',
|
||||
'client_id' => '2', // it should be password grant client
|
||||
'client_secret' => config('app.secret'),
|
||||
'provider' => 'google',
|
||||
'access_token' => $request->access_token // access token from provider
|
||||
];
|
||||
|
||||
$requestToken = Request::create("/oauth/token", "POST", $params);
|
||||
$response = app()->handle($requestToken);
|
||||
$json = json_decode($response->content(), true);
|
||||
$user = User::where('social_id', $request->social_id) -> first();
|
||||
$frontend = json_encode([
|
||||
'token_type' => $json['token_type'],
|
||||
'expires_at' => $json['expires_in'],
|
||||
'access_token' => $json['access_token'],
|
||||
'userid' => $user->id,
|
||||
'role' => $user->role_id,
|
||||
'verified' => $user->phone_verified_at,
|
||||
'reported' => $user->reported
|
||||
]);
|
||||
return $frontend;
|
||||
}
|
||||
|
||||
public function apple(Request $request)
|
||||
{
|
||||
$params = [
|
||||
'grant_type' => 'social',
|
||||
'client_id' => '2', // it should be password grant client
|
||||
'client_secret' => config('app.secret'),
|
||||
'provider' => 'apple',
|
||||
'access_token' => $request->access_token // access token from provider
|
||||
];
|
||||
|
||||
$requestToken = Request::create("/oauth/token", "POST", $params);
|
||||
$response = app()->handle($requestToken);
|
||||
$json = json_decode($response->content(), true);
|
||||
$user = User::where('social_id', $request->social_id) -> first();
|
||||
$frontend = json_encode([
|
||||
'token_type' => $json['token_type'],
|
||||
'expires_at' => $json['expires_in'],
|
||||
'access_token' => $json['access_token'],
|
||||
'userid' => $user->id,
|
||||
'role' => $user->role_id,
|
||||
'verified' => $user->phone_verified_at,
|
||||
'reported' => $user->reported
|
||||
]);
|
||||
return $frontend;
|
||||
}
|
||||
|
||||
|
||||
public function register(Request $request)
|
||||
{
|
||||
$rules = [
|
||||
'name' => 'required|string|regex:/(^[a-zA-Z\s ÑñÁáÉéÍíÓóÚúÜü]+$)+/',
|
||||
'email' => 'required|string|email|unique:users',
|
||||
'phone' => 'required|numeric',
|
||||
'password' => 'required|string',
|
||||
'secret' => 'required|string'
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'email.unique' => 'Correo electronico ya registrado',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'message' => $validator->messages()->first()
|
||||
], 422);
|
||||
}
|
||||
|
||||
if ($request->secret == config('app.pass')) {
|
||||
|
||||
/**$verify = new Verify_accounts;
|
||||
$verify->name = $request->name;
|
||||
$verify->email = $request->email;
|
||||
$verify->password = bcrypt($request->password);
|
||||
$verify->token = str_random(70);
|
||||
|
||||
$verify->save(); */
|
||||
|
||||
$user = new User;
|
||||
$user->name = $request->name;
|
||||
$user->email = $request->email;
|
||||
$user->phone = $request->phone;
|
||||
$user->password = bcrypt($request->password);
|
||||
$user->role_id = "1";
|
||||
$user->save();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Successfully created user!'
|
||||
], 201);
|
||||
} else {
|
||||
return response()->json([
|
||||
'message' => 'Puto el que la hackee'
|
||||
], 201);
|
||||
}
|
||||
}
|
||||
public function logout(Request $request)
|
||||
{
|
||||
$request->user()->token()->revoke();
|
||||
return response()->json([
|
||||
'message' => 'Successfully logged out'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the authenticated User
|
||||
*
|
||||
* @return [json] user object
|
||||
*/
|
||||
public function user(Request $request)
|
||||
{
|
||||
return response()->json($request->user());
|
||||
}
|
||||
|
||||
public function checkemail($token)
|
||||
{
|
||||
$verifyUser = Verify_accounts::where('token', $token)->first();
|
||||
$user = new User;
|
||||
$user->name = $verifyUser->name;
|
||||
$user->email = $verifyUser->email;
|
||||
$user->password = $verifyUser->password;
|
||||
$user->role_id = "1";
|
||||
$user->save();
|
||||
Verify_accounts::destroy($verifyUser->id);
|
||||
}
|
||||
|
||||
public function verify(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
$user->phone = $request->phone;
|
||||
$user->phone_verified_at = date("Y-m-d H:i:s");
|
||||
|
||||
$user->save();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Successfully updated'
|
||||
]);
|
||||
}
|
||||
}
|
||||
51
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
51
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset emails and
|
||||
| includes a trait which assists in sending these notifications from
|
||||
| your application to your users. Feel free to explore this trait.
|
||||
|
|
||||
*/
|
||||
|
||||
use SendsPasswordResetEmails;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
protected function sendResetLinkResponse($response)
|
||||
{
|
||||
if (request()->header('Content-Type') == 'application/json') {
|
||||
return response()->json(['success' => 'Email enviado con éxito.']);
|
||||
}
|
||||
return back()->with('status', 'Email enviado con éxito.');
|
||||
}
|
||||
|
||||
protected function sendResetLinkFailedResponse($response)
|
||||
{
|
||||
if (request()->header('Content-Type') == 'application/json') {
|
||||
return response()->json(['error' => 'Por favor contacte a soporte técnico.']);
|
||||
}
|
||||
|
||||
return back()->withErrors(
|
||||
['email' => 'Ha ocurrido un error']
|
||||
);
|
||||
}
|
||||
}
|
||||
71
app/Http/Controllers/Auth/LoginController.php
Normal file
71
app/Http/Controllers/Auth/LoginController.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Auth;
|
||||
use Socialite;
|
||||
use Route;
|
||||
use App\User;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles authenticating users for the application and
|
||||
| redirecting them to your home screen. The controller uses a trait
|
||||
| to conveniently provide its functionality to your applications.
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/home';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
public function redirectToProvider($provider)
|
||||
{
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
public function handleProviderCallback($provider)
|
||||
{
|
||||
$user = Socialite::driver($provider)->user();
|
||||
$authUser = $this->findUser($user, $provider);
|
||||
|
||||
Auth::login($authUser, true);
|
||||
return redirect($this->redirectTo);
|
||||
}
|
||||
public function findUser($user, $provider) {
|
||||
$authUser = User::where('social_id', $user->id . '_' . $provider)->first();
|
||||
if($authUser) {
|
||||
return $authUser;
|
||||
}
|
||||
return User::create([
|
||||
'name' => $user->getName(),
|
||||
'email' => $user->getEmail(),
|
||||
'social_id' => $user->getId() . '_' . $provider,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
77
app/Http/Controllers/Auth/RegisterController.php
Normal file
77
app/Http/Controllers/Auth/RegisterController.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\User;
|
||||
use Carbon\Carbon;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users as well as their
|
||||
| validation and creation. By default this controller uses a trait to
|
||||
| provide this functionality without requiring any additional code.
|
||||
|
|
||||
*/
|
||||
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/home';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'phone' => ['required', 'string', 'min:8', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'phone' => $data['phone'],
|
||||
'phone_verified_at' => Carbon::now(),
|
||||
'role_id' => '2',
|
||||
'password' => Hash::make($data['password']),
|
||||
]);
|
||||
}
|
||||
}
|
||||
39
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
39
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
|
||||
class ResetPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset requests
|
||||
| and uses a simple trait to include this behavior. You're free to
|
||||
| explore this trait and override any methods you wish to tweak.
|
||||
|
|
||||
*/
|
||||
|
||||
use ResetsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users after resetting their password.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/home';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
}
|
||||
41
app/Http/Controllers/Auth/VerificationController.php
Normal file
41
app/Http/Controllers/Auth/VerificationController.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||
|
||||
class VerificationController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Email Verification Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling email verification for any
|
||||
| user that recently registered with the application. Emails may also
|
||||
| be re-sent if the user didn't receive the original email message.
|
||||
|
|
||||
*/
|
||||
|
||||
use VerifiesEmails;
|
||||
|
||||
/**
|
||||
* Where to redirect users after verification.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/home';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->middleware('signed')->only('verify');
|
||||
$this->middleware('throttle:6,1')->only('verify', 'resend');
|
||||
}
|
||||
}
|
||||
162
app/Http/Controllers/BanksController.php
Normal file
162
app/Http/Controllers/BanksController.php
Normal file
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Banks;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class BanksController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$banks = new Banks();
|
||||
$banks = $banks->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('code', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('name', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('banks.index', compact('banks'));
|
||||
} else {
|
||||
return view('banks.ajax', compact('banks'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('banks.form');
|
||||
|
||||
$rules = [
|
||||
'code' => 'required|numeric',
|
||||
'name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'code.required' => 'Se requiere un valor de código',
|
||||
'name.required' => 'Se requiere el nombre del banco',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$bank = new Banks();
|
||||
$bank->code = $request->code;
|
||||
$bank->name = strip_tags($request->name);
|
||||
$bank->save();
|
||||
|
||||
return redirect('banks');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('banks.form',['bank' => Banks::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'code' => 'required|numeric',
|
||||
'name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'code.required' => 'Se requiere un valor de código',
|
||||
'name.required' => 'Se requiere el nombre del banco',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$bank = Banks::find($id);
|
||||
$bank->code = $request->code;
|
||||
$bank->name = strip_tags($request->name);
|
||||
$bank->save();
|
||||
|
||||
return redirect('banks');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
Banks::destroy($id);
|
||||
return redirect('banks');
|
||||
}
|
||||
}
|
||||
161
app/Http/Controllers/CategoriesController.php
Normal file
161
app/Http/Controllers/CategoriesController.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Categories;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class CategoriesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$categories = new Categories();
|
||||
$categories = $categories->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('name', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('categories.index', compact('categories'));
|
||||
} else {
|
||||
return view('categories.ajax', compact('categories'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('categories.form');
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
'en_name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere el nombre de la categoría',
|
||||
'en_name.required' => 'Se requiere el nombre de la categoría (en ingles)',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$category = new Categories();
|
||||
$category->name = strip_tags($request->name);
|
||||
$category->en_name = strip_tags($request->en_name);
|
||||
$category->save();
|
||||
|
||||
return redirect('categories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('categories.form',['category' => Categories::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
'en_name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere el nombre de la categoría',
|
||||
'en_name.required' => 'Se requiere el nombre de la categoría (en ingles)',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$category = Categories::find($id);
|
||||
$category->name = strip_tags($request->name);
|
||||
$category->en_name = strip_tags($request->en_name);
|
||||
$category->save();
|
||||
|
||||
return redirect('categories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
Categories::destroy($id);
|
||||
return redirect('categories');
|
||||
}
|
||||
}
|
||||
1036
app/Http/Controllers/ContractController.php
Normal file
1036
app/Http/Controllers/ContractController.php
Normal file
File diff suppressed because it is too large
Load Diff
13
app/Http/Controllers/Controller.php
Normal file
13
app/Http/Controllers/Controller.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
||||
170
app/Http/Controllers/CouponController.php
Normal file
170
app/Http/Controllers/CouponController.php
Normal file
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Coupon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class CouponController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$coupons = new Coupon();
|
||||
$coupons = $coupons->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('name', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('percentage', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('amount', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('limit', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('coupons.index', compact('coupons'));
|
||||
} else {
|
||||
return view('coupons.ajax', compact('coupons'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('coupons.form');
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
'percentage' => 'nullable|numeric',
|
||||
'amount' => 'nullable|numeric',
|
||||
'limit' => 'nullable|numeric',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere un nombre de cupon',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$coupon = new Coupon();
|
||||
$coupon->name = strip_tags($request->name);
|
||||
$coupon->percentage = $request->percentage;
|
||||
$coupon->amount = $request->amount;
|
||||
$coupon->limit = $request->limit;
|
||||
$coupon->save();
|
||||
|
||||
return redirect('coupons');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\Coupon $coupon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Coupon $coupon)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\Coupon $coupon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Coupon $coupon)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\Coupon $coupon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('coupons.form', ['coupon' => Coupon::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
'percentage' => 'nullable|numeric',
|
||||
'amount' => 'nullable|numeric',
|
||||
'limit' => 'nullable|numeric',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere un nombre de cupon',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$coupon = Coupon::find($id);
|
||||
$coupon->name = strip_tags($request->name);
|
||||
$coupon->percentage = $request->percentage;
|
||||
$coupon->amount = $request->amount;
|
||||
$coupon->limit = $request->limit;
|
||||
$coupon->save();
|
||||
|
||||
return redirect('coupons');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\Coupon $coupon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
Coupon::destroy($id);
|
||||
return redirect('coupons');
|
||||
}
|
||||
}
|
||||
28
app/Http/Controllers/HomeController.php
Normal file
28
app/Http/Controllers/HomeController.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Support\Renderable
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('home');
|
||||
}
|
||||
}
|
||||
179
app/Http/Controllers/IChambaParameterController.php
Normal file
179
app/Http/Controllers/IChambaParameterController.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\iChambaParameter;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class IChambaParameterController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$ichambaparameters = new iChambaParameter();
|
||||
$ichambaparameters = $ichambaparameters->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('parameter', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('num_value', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('string_value', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('parameters.index', compact('ichambaparameters'));
|
||||
} else {
|
||||
return view('parameters.ajax', compact('ichambaparameters'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('parameters.form');
|
||||
|
||||
$rules = [
|
||||
'parameter' => 'required|string',
|
||||
'num_value' => 'nullable|numeric',
|
||||
'string_value' => 'nullable|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'parameter.required' => 'Se requiere un nombre de parametro',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$ichambaparameter = new iChambaParameter();
|
||||
$ichambaparameter->parameter = strip_tags($request->parameter);
|
||||
$ichambaparameter->num_value = $request->num_value;
|
||||
$ichambaparameter->string_value = strip_tags($request->string_value);
|
||||
$ichambaparameter->save();
|
||||
|
||||
return redirect('parameters');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\iChambaParameter $iChambaParameter
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(iChambaParameter $iChambaParameter)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function parameters()
|
||||
{
|
||||
//
|
||||
$ichambaparameters = new iChambaParameter();
|
||||
$min_time = $ichambaparameters->where('parameter', 'min_time')->first()->num_value;
|
||||
$max_time = $ichambaparameters->where('parameter', 'max_time')->first()->num_value;
|
||||
|
||||
return response()->json([
|
||||
'min_time' => $min_time,
|
||||
'max_time' => $max_time
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\iChambaParameter $iChambaParameter
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(iChambaParameter $iChambaParameter)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\iChambaParameter $iChambaParameter
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('parameters.form', ['ichambaparameter' => iChambaParameter::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'parameter' => 'required|string',
|
||||
'num_value' => 'nullable|numeric',
|
||||
'string_value' => 'nullable|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'parameter.required' => 'Se requiere un nombre de parametro',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$ichambaparameter = iChambaParameter::find($id);
|
||||
$ichambaparameter->parameter = strip_tags($request->parameter);
|
||||
$ichambaparameter->num_value = $request->num_value;
|
||||
$ichambaparameter->string_value = strip_tags($request->string_value);
|
||||
$ichambaparameter->save();
|
||||
|
||||
return redirect('parameters');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\iChambaParameter $iChambaParameter
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
iChambaParameter::destroy($id);
|
||||
return redirect('parameters');
|
||||
}
|
||||
}
|
||||
254
app/Http/Controllers/NoHomeController.php
Normal file
254
app/Http/Controllers/NoHomeController.php
Normal file
@@ -0,0 +1,254 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\NoHome;
|
||||
use App\User;
|
||||
use Carbon\Carbon;
|
||||
use OneSignal;
|
||||
use Image;
|
||||
use Storage;
|
||||
use App\Models\CurrentContracts;
|
||||
use App\Models\FinishedContracts;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use TarfinLabs\LaravelSpatial\Types\Point;
|
||||
use Illuminate\Support\Facades\File;
|
||||
|
||||
class NoHomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\NoHome $noHome
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(NoHome $noHome)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\NoHome $noHome
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(NoHome $noHome)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\NoHome $noHome
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, NoHome $noHome)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\NoHome $noHome
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(NoHome $noHome)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function test(Request $request)
|
||||
{
|
||||
|
||||
$rules = [
|
||||
'contract_id' => 'required|numeric',
|
||||
'description' => 'required|string',
|
||||
'lat' => 'numeric|nullable',
|
||||
'lng' => 'numeric|nullable',
|
||||
//'house_photo' => 'image|mimes:jpeg,jpg,png|max:2048',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'message' => 'Por favor corrija'
|
||||
]);
|
||||
} else {
|
||||
$user = Auth::user();
|
||||
$disk = Storage::disk('gcs');
|
||||
|
||||
if ($request->file('house_photo')) {
|
||||
$name = Carbon::now();
|
||||
$filename = $name . '.jpg';
|
||||
$disk->putFileAs('img/users/'. $user->id . '/', $request->file('house_photo'), $filename, 'public');
|
||||
}
|
||||
return response()->json([
|
||||
//'message' => 'Por favor espere a los 10 minutos de tolerancia de la hora acordada'
|
||||
'contract_id' => $request->contract_id,
|
||||
'lat' => $request->lat,
|
||||
'lng' => $request->lng,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function nohomecheck(Request $request){
|
||||
$user = Auth::user();
|
||||
$contract = CurrentContracts::where('supplier_id', $user->suppliers->id)->whereBetween('appointment', [Carbon::now()->subMinutes(15), Carbon::now()->addMinutes(10)])->first();
|
||||
|
||||
if ($contract) {
|
||||
$client = User::where('id', $contract->user_id)->first();
|
||||
if (Carbon::now()->diffInMinutes($contract->appointment, false) < 10) {
|
||||
return response()->json($contract);
|
||||
} else {
|
||||
OneSignal::sendNotificationUsingTags(
|
||||
"El proveedor para el servicio en " . $contract->address . " ha llegado. Dírigeta a la sección de contratos confirmados para más detalles",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $client->id]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = null,
|
||||
$headings = $client->name + ", tu proveedor del servicio ha llegado"
|
||||
);
|
||||
return response()->json([
|
||||
//'message' => 'Por favor espere a los 10 minutos de tolerancia de la hora acordada'
|
||||
'message' => 'wait'
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
return response()->json([
|
||||
//'message' => 'No hay contratos citados a esta hora'
|
||||
'message' => 'no-contract'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function nohomeconfirm(Request $request) {
|
||||
|
||||
$rules = [
|
||||
'contract_id' => 'required|numeric',
|
||||
'description' => 'required|string',
|
||||
'lat' => 'numeric|nullable',
|
||||
'lng' => 'numeric|nullable',
|
||||
//'house_photo' => 'image|mimes:jpeg,jpg,png|max:2048',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
} else {
|
||||
|
||||
$user = Auth::user();
|
||||
$disk = Storage::disk('gcs');
|
||||
$ccontract = CurrentContracts::where('id', $request->contract_id)->first();
|
||||
$client = User::where('id', $ccontract->user_id)->first();
|
||||
|
||||
if ($user->suppliers->id == $ccontract->supplier_id) {
|
||||
if (Carbon::now()->diffInMinutes($ccontract->appointment, false) >= 11) {
|
||||
if ($request->lat != null && $request->lng != null) {
|
||||
$geometry = new Point($request->lat, $request->lng);
|
||||
}
|
||||
|
||||
$fcontract = new FinishedContracts();
|
||||
$fcontract->user_id = $ccontract->user_id;
|
||||
$fcontract->supplier_id = $ccontract->supplier_id;
|
||||
$fcontract->category_id = $ccontract->category_id;
|
||||
$fcontract->address = $ccontract->address;
|
||||
$fcontract->location = $ccontract->location;
|
||||
$fcontract->int_number = $ccontract->int_number;
|
||||
$fcontract->references = $ccontract->references;
|
||||
$fcontract->appointment = $ccontract->appointment;
|
||||
$fcontract->amount = $ccontract->amount;
|
||||
$fcontract->details = $ccontract->details;
|
||||
$fcontract->IVA = $ccontract->IVA;
|
||||
$fcontract->ISR = $ccontract->ISR;
|
||||
$fcontract->ichamba_fee = $ccontract->ichamba_fee;
|
||||
$fcontract->revenue = $ccontract->revenue;
|
||||
$fcontract->details = $ccontract->details;
|
||||
$fcontract->en = $ccontract->en;
|
||||
$fcontract->transaction_id = $ccontract->transaction_id;
|
||||
$fcontract->status_id = 5;
|
||||
$fcontract->save();
|
||||
|
||||
$nohome = new NoHome();
|
||||
$nohome->contract_id = $fcontract->id;
|
||||
if ($geometry != null) {
|
||||
$nohome->location = $geometry;
|
||||
}
|
||||
|
||||
if ($request->file('house_photo')) {
|
||||
$disk = Storage::disk('gcs');
|
||||
|
||||
$name = Carbon::now();
|
||||
$filename = $name . '.jpg';
|
||||
$disk->putFileAs('img/users/'. $user->id . '/', $request->file('house_photo'), $filename, 'public');
|
||||
$nohome->house_photo = $disk->url('img/users/'. $user->id . '/' . $filename);
|
||||
}
|
||||
$nohome->house_description = $request->description;
|
||||
|
||||
$nohome->save();
|
||||
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Ausencia registrada con éxito, nos comunicaremos con usted por correo electrónico en caso de alguna circunstancia'
|
||||
]);
|
||||
} else {
|
||||
OneSignal::sendNotificationUsingTags(
|
||||
"El proveedor para el servicio en " . $ccontract->address . " ha llegado. Dírigeta a la sección de contratos confirmados para más detalles",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $client->id]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = null,
|
||||
$headings = $client->name . ", tu proveedor del servicio ha llegado"
|
||||
);
|
||||
return response()->json([
|
||||
'order' => 'wait',
|
||||
'message' => 'Por favor espere a los 10 minutos de tolerancia de la hora acordada'
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
381
app/Http/Controllers/PaymentController.php
Normal file
381
app/Http/Controllers/PaymentController.php
Normal file
@@ -0,0 +1,381 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Carbon\Carbon;
|
||||
use App\User;
|
||||
use App\Models\Suppliers;
|
||||
use App\Models\Payments;
|
||||
use App\Models\FinishedContracts;
|
||||
use App\Models\Cards;
|
||||
use Openpay;
|
||||
use Exception;
|
||||
use OpenpayApiError;
|
||||
use OpenpayApiAuthError;
|
||||
use OpenpayApiRequestError;
|
||||
use OpenpayApiConnectionError;
|
||||
use OpenpayApiTransactionError;
|
||||
|
||||
require_once '../vendor/autoload.php';
|
||||
|
||||
class PaymentController extends Controller
|
||||
{
|
||||
//
|
||||
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$payments = new FinishedContracts();
|
||||
$payments = $payments->where('status_id', 3)->where('paid', false)->where('transaction_id', '!=', 'NO APPLY')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('payments.index', compact('payments'));
|
||||
} else {
|
||||
return view('payments.ajax', compact('payments'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function cardsindex(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$cards= new Cards();
|
||||
$cards = $cards->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('token', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('cards.index', compact('cards'));
|
||||
} else {
|
||||
return view('cards.ajax', compact('cards'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$credit_card = Cards::where('id', $id)->first();
|
||||
$user = User::where('id', $credit_card->user_id)->first();
|
||||
Openpay::setProductionMode(true);
|
||||
|
||||
try {
|
||||
$openpay = Openpay::getInstance(config('app.openpay_id'), config('app.openpay_apikey'));
|
||||
$customer = $openpay->customers->get($user->openpay_id);
|
||||
$card = $customer->cards->get($credit_card->token);
|
||||
$card->delete();
|
||||
} catch (OpenpayApiTransactionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error en la transacción'
|
||||
]);
|
||||
} catch (OpenpayApiRequestError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error en los datos requeridos'
|
||||
]);
|
||||
} catch (OpenpayApiConnectionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (OpenpayApiAuthError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
Cards::destroy($id);
|
||||
return redirect('cards');
|
||||
}
|
||||
|
||||
public function addcard(Request $request)
|
||||
{
|
||||
$rules = [
|
||||
'token' => 'required|string|regex:/(^[A-Za-z0-9 ]+$)+/',
|
||||
'device_id' => 'required|string|regex:/(^[A-Za-z0-9 ]+$)+/',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$user = $request->user();
|
||||
Openpay::setProductionMode(true);
|
||||
|
||||
if ($user->openpay_id == null) {
|
||||
try {
|
||||
$openpay = Openpay::getInstance(config('app.openpay_id'), config('app.openpay_apikey'));
|
||||
$customerData = array(
|
||||
'external_id' => $user->id,
|
||||
'name' => $user->name,
|
||||
'email' => $user->email,
|
||||
);
|
||||
$customer = $openpay->customers->add($customerData);
|
||||
} catch (OpenpayApiTransactionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la transacción'
|
||||
]);
|
||||
} catch (OpenpayApiRequestError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la operación'
|
||||
]);
|
||||
} catch (OpenpayApiConnectionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiAuthError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
$user->openpay_id = $customer->id;
|
||||
$user->save();
|
||||
|
||||
}
|
||||
|
||||
|
||||
$cardDataRequest = array(
|
||||
'token_id' => $request->token,
|
||||
'device_session_id' => $request->device_id
|
||||
);
|
||||
|
||||
try {
|
||||
$openpay = Openpay::getInstance(config('app.openpay_id'), config('app.openpay_apikey'));
|
||||
$customer = $openpay->customers->get($user->openpay_id);
|
||||
$card = $customer->cards->add($cardDataRequest);
|
||||
|
||||
} catch (OpenpayApiTransactionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la transacción'
|
||||
]);
|
||||
} catch (OpenpayApiRequestError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la operación'
|
||||
]);
|
||||
} catch (OpenpayApiConnectionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiAuthError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
$card = new Cards();
|
||||
|
||||
$card->user_id = $user->id;
|
||||
$card->token = $request->token;
|
||||
|
||||
$card->save();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Tarjeta guardada exitosamente'
|
||||
]);
|
||||
}
|
||||
|
||||
public function deletecard(Request $request)
|
||||
{
|
||||
$rules = [
|
||||
'card_id' => 'required|numeric',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$user = $request->user();
|
||||
$credit_card = Cards::where('id', $request->card_id)->first();
|
||||
Openpay::setProductionMode(true);
|
||||
|
||||
|
||||
if ($credit_card->user_id == $user->id) {
|
||||
try {
|
||||
$openpay = Openpay::getInstance(config('app.openpay_id'), config('app.openpay_apikey'));
|
||||
$customer = $openpay->customers->get($user->openpay_id);
|
||||
$card = $customer->cards->get($credit_card->token);
|
||||
$card->delete();
|
||||
} catch (OpenpayApiTransactionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la transacción'
|
||||
]);
|
||||
} catch (OpenpayApiRequestError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la operación'
|
||||
]);
|
||||
} catch (OpenpayApiConnectionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiAuthError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
Cards::destroy($request->card_id);
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Tarjeta eliminada exitosamente'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function getcards(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
Openpay::setProductionMode(true);
|
||||
|
||||
if ($user->openpay_id) {
|
||||
try {
|
||||
$openpay = Openpay::getInstance(config('app.openpay_id'), config('app.openpay_apikey'));
|
||||
$customer = $openpay->customers->get($user->openpay_id);
|
||||
} catch (OpenpayApiTransactionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la transacción'
|
||||
]);
|
||||
} catch (OpenpayApiRequestError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'No se pudo procesar la operación'
|
||||
]);
|
||||
} catch (OpenpayApiConnectionError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiAuthError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
|
||||
} catch (OpenpayApiError $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error al conectarse a Openpay: ' . $e->getMessage()
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'Error: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
|
||||
$cards = Cards::where('user_id', $user->id)->get();
|
||||
|
||||
$cardsinfo = array();
|
||||
|
||||
foreach ($cards as $credit_card) {
|
||||
$card = $customer->cards->get($credit_card->token);
|
||||
$cardinfo = array(
|
||||
'id' => $credit_card->id,
|
||||
'brand' => $card->brand,
|
||||
'card_number' => $card->card_number,
|
||||
);
|
||||
$cardsinfo[] = $cardinfo;
|
||||
}
|
||||
return response()->json($cardsinfo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
386
app/Http/Controllers/PostulationController.php
Normal file
386
app/Http/Controllers/PostulationController.php
Normal file
@@ -0,0 +1,386 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\User;
|
||||
use Carbon\Carbon;
|
||||
use OneSignal;
|
||||
use App\Models\Suppliers;
|
||||
use App\Models\Categories;
|
||||
use App\Models\Postulations;
|
||||
use MissaelAnda\Whatsapp;
|
||||
use MissaelAnda\Whatsapp\Messages;
|
||||
use App\Models\FinishedContracts;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use TarfinLabs\LaravelSpatial\Types\Point;
|
||||
|
||||
class PostulationController extends Controller
|
||||
{
|
||||
//
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$postulations = new Postulations();
|
||||
$postulations = $postulations->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('user_id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('address', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('amount', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('postulations.index', compact('postulations'));
|
||||
} else {
|
||||
return view('postulations.ajax', compact('postulations'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function map(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$postulations = new Postulations();
|
||||
$postulations = $postulations->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('user_id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('address', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('amount', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
return view('postulations.map', compact('postulations'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request) {
|
||||
|
||||
$rules = [
|
||||
'category' => 'required|string',
|
||||
'address' => 'required|string',
|
||||
'int_number' => 'numeric|nullable',
|
||||
'references' => 'string|nullable',
|
||||
'setdate' => 'required|string',
|
||||
'sethour' => 'required|string',
|
||||
'details' => 'string|nullable',
|
||||
'lat' => 'required|numeric',
|
||||
'lng' => 'required|numeric',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return response()->json($validator->messages());
|
||||
} else {
|
||||
|
||||
$user = Auth::user();
|
||||
$geometry = new Point($request->lat, $request->lng);
|
||||
$category = Categories::where('name', strip_tags($request->category))->orwhere('en_name', strip_tags($request->category))->first();
|
||||
|
||||
$distance = 0.5;
|
||||
$suppliers = Suppliers::distance('location', $geometry, $distance)->get();
|
||||
|
||||
if ($suppliers != '[]') {
|
||||
|
||||
$postulation = new Postulations();
|
||||
$postulation->user_id = $user->id;
|
||||
$postulation->category_id = $category->id;
|
||||
$postulation->address = strip_tags($request->address);
|
||||
$postulation->location = $geometry;
|
||||
$postulation->int_number = $request->int_number;
|
||||
$postulation->references = preg_replace('/\d+/', '', strip_tags($request->references));
|
||||
$timeoffset = str_replace("0", "", substr(substr(strip_tags($request->sethour), 23), 0, 3));
|
||||
$postulation->appointment = Carbon::createFromFormat('Y-m-d H:i:s', (substr(strip_tags($request->setdate), 0, 10) . ' ' . substr(substr(strip_tags($request->sethour), 11), 0, 8)), $timeoffset)->tz('UTC');
|
||||
$postulation->amount = 5000;
|
||||
$postulation->details = preg_replace('/\d+/', '', strip_tags($request->details));
|
||||
$postulation->save();
|
||||
|
||||
OneSignal::sendNotificationUsingTags(
|
||||
"Coméntele al Ing. que hay una postulación",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => "128"]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = null,
|
||||
$headings = "Admin: hay nueva postulación"
|
||||
);
|
||||
|
||||
foreach ($suppliers as $supplier) {
|
||||
if (in_array($category->id, $supplier->categories->pluck('id')->toArray())) {
|
||||
/*OneSignal::sendNotificationUsingTags(
|
||||
"Dirígete a la sección de postulaciones en la app para ver más detalles",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $supplier->user_id]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = null,
|
||||
$headings = "Proveedor: hay nueva postulación"
|
||||
);*/
|
||||
|
||||
Whatsapp::send($supplier->user->phone, Messages\TemplateMessage::create()
|
||||
->name('suppplier_new_postulation')
|
||||
->language('es_US')
|
||||
->body(Messages\Components\Body::create([
|
||||
Messages\Components\Parameters\Text::create('Proveedor hay nueva postulación: dirígete a la sección de postulaciones en JobHero para ver más detalles'),
|
||||
])));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$minutes = intval(substr(substr($request->setdate, 14), 0, 2) + 15);
|
||||
$hours = intval(substr(substr($request->setdate, 11), 0, 2) + 1);
|
||||
|
||||
if ($minutes > 59) {
|
||||
if ($hours > 23){
|
||||
$delay_msg = Carbon::now()->addDays(1)->toDateString() . ' ' . ($hours - 24) . ':' . ($minutes - 60) . substr(substr($request->setdate, 16), 0, 3);
|
||||
} else {
|
||||
$delay_msg = substr($request->sethour, 0, 10) . ' ' . $hours . ':' . ($minutes - 60) . substr(substr($request->setdate, 16), 0, 3);
|
||||
}
|
||||
} else {
|
||||
$delay_msg = substr($request->sethour, 0, 10) . ' ' . $hours . ':' . $minutes . substr(substr($request->setdate, 16), 0, 3);
|
||||
}
|
||||
|
||||
$delay_UTC = Carbon::now()->addMinutes(15)->toString();
|
||||
|
||||
/*OneSignal::sendNotificationUsingTags(
|
||||
"Dirígete a la sección de contratos en la app para ver más detalles",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $user->id]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = $delay_UTC,
|
||||
$headings = "Búsqueda Finalizada"
|
||||
);*/
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Servicio solicitado, espere a que un proveedor se postule'
|
||||
]);
|
||||
} else {
|
||||
return response()->json([
|
||||
'message' => 'No Provider'
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function postulate(Request $request) {
|
||||
|
||||
$rules = [
|
||||
'postulation_id' => 'required|numeric',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
} else {
|
||||
|
||||
$user = Auth::user();
|
||||
$postulation = Postulations::where('id', $request->postulation_id)->first();
|
||||
$time_created = Carbon::parse($postulation->created_at);
|
||||
$time_limit = (9900 - Carbon::now()->diffInMinutes($time_created));
|
||||
$supplier = Suppliers::where('user_id', $user->id)->first();
|
||||
|
||||
if ($time_limit > 0) {
|
||||
if (in_array($postulation->category_id, $supplier->categories->pluck('id')->toArray())) {
|
||||
/*if($supplier->membership == 1) {
|
||||
OneSignal::sendNotificationUsingTags(
|
||||
"Dirígete a la sección de contratos en la app para ver más detalles",
|
||||
array(
|
||||
["field" => "tag", "key" => "iChamba_ID", "relation" => "=", "value" => $postulation->user_id]
|
||||
),
|
||||
$url = null,
|
||||
$data = null,
|
||||
$buttons = null,
|
||||
$schedule = null,
|
||||
$headings = "Un proveedor certificado se ha postulado"
|
||||
);
|
||||
}*/
|
||||
Whatsapp::send($postulation->user->phone, Messages\TemplateMessage::create()
|
||||
->name('suppplier_postulated')
|
||||
->language('es_US')
|
||||
->body(Messages\Components\Body::create([
|
||||
Messages\Components\Parameters\Text::create('Un proveedor certificado se ha postulado: dirígete a la sección de contratos en JobHero para ver más detalles'),
|
||||
])));
|
||||
|
||||
$supplier->postulations()->attach($request->postulation_id);
|
||||
$supplier->save();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Se ha postulado al servicio exitosamente'
|
||||
]);
|
||||
}
|
||||
|
||||
} else {
|
||||
return response()->json([
|
||||
'message' => 'La postulación ha caducado'
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getpendingcontracts(Request $request) {
|
||||
$user = Auth::user();
|
||||
$postulations = Postulations::where('user_id', $user->id)->orderBy('created_at', 'DESC')->get();
|
||||
$pendingcontracts = array();
|
||||
|
||||
foreach($postulations as $postulation) {
|
||||
$time_limit = Carbon::parse($postulation->appointment);
|
||||
if ($time_limit->diffInMinutes(Carbon::now(), false) <= -60) {
|
||||
$category = Categories::where('id', $postulation->category_id)->first();
|
||||
$pendingcontractinfo = array(
|
||||
'id' => $postulation->id,
|
||||
'category' => $category->name,
|
||||
'en_category' => $category->en_name,
|
||||
'address' => $postulation->address,
|
||||
'date' => $postulation->appointment,
|
||||
'amount' => $postulation->amount
|
||||
);
|
||||
$pendingcontracts[] = $pendingcontractinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json($pendingcontracts);
|
||||
}
|
||||
|
||||
public function getfinishedpostulations(Request $request) {
|
||||
$user = Auth::user();
|
||||
$postulations = FinishedContracts::where('supplier_id', $user->suppliers->id)->orderBy('created_at', 'DESC')->get();
|
||||
$finishedpostulations = array();
|
||||
|
||||
foreach($postulations as $postulation) {
|
||||
$time_limit = Carbon::parse($postulation->appointment);
|
||||
$category = Categories::where('id', $postulation->category_id)->first();
|
||||
$finishedpostulationinfo = array(
|
||||
'id' => $postulation->id,
|
||||
'category' => $category->name,
|
||||
'en_category' => $category->en_name,
|
||||
'address' => $postulation->address,
|
||||
'date' => $postulation->appointment,
|
||||
'amount' => $postulation->amount
|
||||
);
|
||||
$finishedpostulations[] = $finishedpostulationinfo;
|
||||
}
|
||||
|
||||
return response()->json($finishedpostulations);
|
||||
}
|
||||
|
||||
public function getpostulants(Request $request) {
|
||||
|
||||
$rules = [
|
||||
'postulation_id' => 'required|numeric',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
} else {
|
||||
|
||||
$user = Auth::user();
|
||||
$postulation = Postulations::where('id', $request->postulation_id)->first();
|
||||
|
||||
if ($postulation->user_id == $user->id) {
|
||||
$category = Categories::where('id', $postulation->category_id)->first();
|
||||
$suppliers = Suppliers::whereHas('postulations', function($q) use ($request) {
|
||||
$q->where('postulations_id', $request->postulation_id);
|
||||
})->get();
|
||||
|
||||
$pcontractsuppliers = array();
|
||||
|
||||
if ($suppliers != '[]') {
|
||||
foreach($suppliers as $supplier) {
|
||||
$pcontractsupplier = array(
|
||||
'id' => $postulation->id,
|
||||
'category' => $category->name,
|
||||
'en_category' => $category->en_name,
|
||||
'address' => $postulation->address,
|
||||
'date' => $postulation->appointment,
|
||||
'amount' => $postulation->amount,
|
||||
'supplier_id' => $supplier->id,
|
||||
'supplier' => $supplier->company_name,
|
||||
'tags' => $supplier->tags,
|
||||
'cover_photo' => $supplier->cover_photo,
|
||||
'membership' => $supplier->membership,
|
||||
'fee' => $supplier->minimun_fee,
|
||||
'score' => round($supplier->total_score/$supplier->finished_jobs, 1),
|
||||
);
|
||||
$pcontractsuppliers[] = $pcontractsupplier;
|
||||
}
|
||||
|
||||
$pcontractsuppliercollection = collect($pcontractsuppliers)->sortByDesc('membership')->sortByDesc('score');
|
||||
$pcontractsupplier = $pcontractsuppliercollection->values()->all();
|
||||
|
||||
} else {
|
||||
$pcontractsupplier = array(
|
||||
'id' => $postulation->id,
|
||||
'category' => $category->name,
|
||||
'en_category' => $category->en_name,
|
||||
'address' => $postulation->address,
|
||||
'date' => $postulation->appointment,
|
||||
'amount' => $postulation->amount,
|
||||
'supplier_id' => null,
|
||||
'supplier' => null,
|
||||
'tags' => null,
|
||||
'cover_photo' => null,
|
||||
'membership' => null,
|
||||
'fee' => null,
|
||||
'score' => null,
|
||||
);
|
||||
|
||||
$pcontractsuppliers[] = $pcontractsupplier;
|
||||
$pcontractsupplier = $pcontractsuppliers;
|
||||
}
|
||||
return response()->json($pcontractsupplier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteexpired()
|
||||
{
|
||||
$postulations = Postulations::whereDate('appointment', '<', Carbon::now())->delete();
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
Postulations::destroy($id);
|
||||
return redirect('postulations');
|
||||
}
|
||||
|
||||
}
|
||||
112
app/Http/Controllers/ReportCommentController.php
Normal file
112
app/Http/Controllers/ReportCommentController.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\ReportComment;
|
||||
use App\Models\FinishedContracts;
|
||||
use App\NoHome;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ReportCommentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request, $id, $contract_id)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$contract = FinishedContracts::where('id', $contract_id)->first();
|
||||
$nohome = NoHome::where('contract_id', $contract_id)->first();
|
||||
$comments = new ReportComment();
|
||||
$comments = $comments->where('report_id', $id)
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->isMethod('get'))
|
||||
return view('reports.comments', compact('comments', 'contract', 'nohome'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\ReportComment $reportComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(ReportComment $reportComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\ReportComment $reportComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(ReportComment $reportComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\ReportComment $reportComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, ReportComment $reportComment)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\ReportComment $reportComment
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id, $contract_id)
|
||||
{
|
||||
//
|
||||
ReportComment::destroy($id);
|
||||
return redirect('reports/comments/'.$id.'/'.$contract_id);
|
||||
}
|
||||
}
|
||||
183
app/Http/Controllers/ReportController.php
Normal file
183
app/Http/Controllers/ReportController.php
Normal file
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\User;
|
||||
use App\Report;
|
||||
use App\ReportComment;
|
||||
use App\Models\FinishedContracts;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class ReportController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$reports = new Report();
|
||||
$reports = $reports->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('contract_id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('moderator_id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('veredict', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('reports.index', compact('reports'));
|
||||
} else {
|
||||
return view('reports.ajax', compact('reports'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Report $report
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Report $report)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Report $report
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function veredict(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('reports.veredict', ['report' => Report::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'veredict' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'veredict.required' => 'Se requiere un veredicto',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$report = Report::find($id);
|
||||
$report->veredict = strip_tags($request->veredict);
|
||||
$coupon->save();
|
||||
|
||||
return redirect('reports');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Report $report
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Report $report)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Report $report
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
Report::destroy($id);
|
||||
return redirect('reports');
|
||||
}
|
||||
|
||||
public function report(Request $request) {
|
||||
|
||||
$rules = [
|
||||
'contract_id' => 'required|numeric',
|
||||
'comment' => 'required|string',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
} else {
|
||||
|
||||
$user = Auth::user();
|
||||
$contract = FinishedContracts::where('id', $request->contract_id)->first();
|
||||
|
||||
if ($user->id == $contract->user_id) {
|
||||
$report = new Report();
|
||||
$report->contract_id = $contract->id;
|
||||
|
||||
$moderator = User::where('role_id', 5)->get();
|
||||
if ($moderator != '[]') {
|
||||
$report->moderator_id = $moderator->random()->id;
|
||||
} else {
|
||||
$report->moderator_id = User::where('role_id', 7)->first()->id;
|
||||
}
|
||||
$report->save();
|
||||
|
||||
$reportcomment = new ReportComment();
|
||||
$reportcomment->report_id = $report->id;
|
||||
$reportcomment->user_id = $user->id;
|
||||
$reportcomment->comment = strip_tags($request->comment);
|
||||
$reportcomment->save();
|
||||
|
||||
$contract->status_id = 6;
|
||||
$contract->save();
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Reporte registrado con éxito, nos comunicaremos con usted por correo electrónico a la brevedad para continuar con el caso'
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
151
app/Http/Controllers/StatusController.php
Normal file
151
app/Http/Controllers/StatusController.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Status;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class StatusController extends Controller
|
||||
{
|
||||
//
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$status = new Status();
|
||||
$status = $status->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('name', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('status.index', compact('status'));
|
||||
} else {
|
||||
return view('status.ajax', compact('status'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('status.form');
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere el nombre del status',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$status = new Status();
|
||||
$status->name = strip_tags($request->name);
|
||||
$status->save();
|
||||
|
||||
return redirect('status');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('status.form',['status' => Status::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere el nombre del status',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$status = Status::find($id);
|
||||
$status->name = strip_tags($request->name);
|
||||
$status->save();
|
||||
|
||||
return redirect('status');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
Status::destroy($id);
|
||||
return redirect('status');
|
||||
}
|
||||
}
|
||||
1273
app/Http/Controllers/SupplierController.php
Normal file
1273
app/Http/Controllers/SupplierController.php
Normal file
File diff suppressed because it is too large
Load Diff
147
app/Http/Controllers/UserController.php
Normal file
147
app/Http/Controllers/UserController.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\User;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
//
|
||||
$request->session()->put('search', $request
|
||||
->has('search') ? strip_tags($request->get('search')) : ($request->session()
|
||||
->has('search') ? strip_tags($request->session()->get('search')) : ''));
|
||||
|
||||
$request->session()->put('field', $request
|
||||
->has('field') ? strip_tags($request->get('field')) : ($request->session()
|
||||
->has('field') ? strip_tags($request->session()->get('field')) : 'id'));
|
||||
|
||||
$request->session()->put('sort', $request
|
||||
->has('sort') ? strip_tags($request->get('sort')) : ($request->session()
|
||||
->has('sort') ? strip_tags($request->session()->get('sort')) : 'asc'));
|
||||
|
||||
//$headers = $request->get('header') != '' ? $request->get('header') : -1;
|
||||
|
||||
$users = new User();
|
||||
$users = $users->where('id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('name', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('email', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('role_id', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orwhere('phone', 'LIKE', '%' . strip_tags($request->session()->get('search')) . '%')
|
||||
->orderBy(strip_tags($request->session()->get('field')), strip_tags($request->session()->get('sort')))
|
||||
->paginate(10);
|
||||
|
||||
if ($request->ajax()) {
|
||||
return view('users.index', compact('users'));
|
||||
} else {
|
||||
return view('users.ajax', compact('users'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
if ($request->isMethod('get'))
|
||||
return view('users.form',['user' => User::find($id)]);
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|string|email',
|
||||
'role' => 'required|numeric',
|
||||
'openpay_id' => 'string|nullable',
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'name.required' => 'Se requiere un nombre de usuario',
|
||||
'email.required' => 'Se requiere un correo electrónico válido',
|
||||
'role.required' => 'Se requiere un rol',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->back()->withInput($request->all())->withErrors($validator);
|
||||
}
|
||||
|
||||
$user = User::find($id);
|
||||
$user->name = strip_tags($request->name);
|
||||
$user->email = $request->email;
|
||||
$user->role_id = $request->role;
|
||||
if ($request->openpay_id == "null" OR $request->openpay_id == null){
|
||||
$user->openpay_id = null;
|
||||
}
|
||||
$user->save();
|
||||
|
||||
return redirect('users');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
User::destroy($id);
|
||||
return redirect('users');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user