105 lines
2.4 KiB
PHP
Raw Normal View History

2017-12-16 16:02:31 +03:00
<?php
2019-11-16 10:21:14 +03:00
namespace App\Http\Controllers\Portal;
2017-12-16 16:02:31 +03:00
2019-11-16 10:21:14 +03:00
use App\Abstracts\Http\Controller;
use App\Http\Requests\Portal\Profile as Request;
2020-03-28 22:14:32 +03:00
use App\Models\Auth\User;
use App\Traits\Uploads;
2017-12-16 16:02:31 +03:00
class Profile extends Controller
{
use Uploads;
2017-12-16 16:02:31 +03:00
public function index()
{
return $this->edit();
}
public function show()
{
return $this->edit();
}
/**
* Show the form for editing the specified resource.
*
* @return Response
*/
public function edit()
{
2019-11-16 10:21:14 +03:00
$user = user();
2017-12-16 16:02:31 +03:00
2019-11-16 10:21:14 +03:00
return view('portal.profile.edit', compact('user'));
2017-12-16 16:02:31 +03:00
}
/**
* Update the specified resource in storage.
*
2020-03-28 22:14:32 +03:00
* @param User $user
* @param Request $request
2017-12-16 16:02:31 +03:00
*
* @return Response
*/
2020-03-28 22:14:32 +03:00
public function update(User $user, Request $request)
2017-12-16 16:02:31 +03:00
{
2019-11-16 10:21:14 +03:00
$user = user();
2017-12-16 16:02:31 +03:00
// Do not reset password if not entered/changed
if (empty($request['password'])) {
unset($request['password']);
unset($request['password_confirmation']);
}
// Update user
$user->update($request->input());
// Upload picture
if ($request->file('picture')) {
$media = $this->getMedia($request->file('picture'), 'users');
$user->attachMedia($media, 'picture');
}
2017-12-16 16:02:31 +03:00
// Update customer
2020-03-28 22:14:32 +03:00
$user->contact->update($request->input());
2017-12-16 16:02:31 +03:00
$message = trans('messages.success.updated', ['type' => trans('auth.profile')]);
flash($message)->success();
$response = [
'success' => true,
'error' => false,
'data' => null,
'message' => '',
'redirect' => route('portal.profile.edit', $user->id),
];
return response()->json($response);
2017-12-16 16:02:31 +03:00
}
/**
* Mark overdue invoices notifications are read and redirect to invoices page.
*
* @return Response
*/
public function readOverdueInvoices()
{
2019-11-16 10:21:14 +03:00
$user = user();
2017-12-16 16:02:31 +03:00
// Mark invoice notifications as read
foreach ($user->unreadNotifications as $notification) {
// Not an invoice notification
2019-12-31 15:49:09 +03:00
if ($notification->getAttribute('type') != 'App\Notifications\Sale\Invoice') {
2017-12-16 16:02:31 +03:00
continue;
}
$notification->markAsRead();
}
// Redirect to invoices
2019-11-16 10:21:14 +03:00
return redirect()->route('portal.invoices.index');
2017-12-16 16:02:31 +03:00
}
}