Add User, Companies, Settings picture media manager
This commit is contained in:
@ -7,11 +7,14 @@ use App\Http\Requests\Auth\User as Request;
|
||||
use Illuminate\Http\Request as ARequest;
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\Auth\Role;
|
||||
use App\Traits\Uploads;
|
||||
|
||||
use Auth;
|
||||
|
||||
class Users extends Controller
|
||||
{
|
||||
use Uploads;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -34,11 +37,12 @@ class Users extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$roles = Role::all()->reject(function($r) {
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return $r->hasPermission('read-customer-panel');
|
||||
});
|
||||
|
||||
$companies = Auth::user()->companies()->get()->sortBy('name');
|
||||
|
||||
foreach ($companies as $company) {
|
||||
$company->setSettings();
|
||||
}
|
||||
@ -55,15 +59,16 @@ class Users extends Controller
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
// Upload picture
|
||||
$picture = $request->file('picture');
|
||||
if ($picture && $picture->isValid()) {
|
||||
$request['picture'] = $picture->store('uploads/users');
|
||||
}
|
||||
|
||||
// Create user
|
||||
$user = User::create($request->input());
|
||||
|
||||
// Upload picture
|
||||
if ($request->file('picture')) {
|
||||
$media = $this->getMedia($request->file('picture'), 'users');
|
||||
|
||||
$user->attachMedia($media, 'picture');
|
||||
}
|
||||
|
||||
// Attach roles
|
||||
$user->roles()->attach($request['roles']);
|
||||
|
||||
@ -88,17 +93,18 @@ class Users extends Controller
|
||||
{
|
||||
if ($user->customer) {
|
||||
// Show only roles with customer permission
|
||||
$roles = Role::all()->reject(function($r) {
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return !$r->hasPermission('read-customer-panel');
|
||||
});
|
||||
} else {
|
||||
// Don't show roles with customer permission
|
||||
$roles = Role::all()->reject(function($r) {
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return $r->hasPermission('read-customer-panel');
|
||||
});
|
||||
}
|
||||
|
||||
$companies = Auth::user()->companies()->get()->sortBy('name');
|
||||
|
||||
foreach ($companies as $company) {
|
||||
$company->setSettings();
|
||||
}
|
||||
@ -116,12 +122,6 @@ class Users extends Controller
|
||||
*/
|
||||
public function update(User $user, Request $request)
|
||||
{
|
||||
// Upload picture
|
||||
$picture = $request->file('picture');
|
||||
if ($picture && $picture->isValid()) {
|
||||
$request['picture'] = $picture->store('users');
|
||||
}
|
||||
|
||||
// Do not reset password if not entered/changed
|
||||
if (empty($request['password'])) {
|
||||
unset($request['password']);
|
||||
@ -131,6 +131,13 @@ class Users extends Controller
|
||||
// Update user
|
||||
$user->update($request->input());
|
||||
|
||||
// Upload picture
|
||||
if ($request->file('picture')) {
|
||||
$media = $this->getMedia($request->file('picture'), 'users');
|
||||
|
||||
$user->attachMedia($media, 'picture');
|
||||
}
|
||||
|
||||
// Sync roles
|
||||
$user->roles()->sync($request['roles']);
|
||||
|
||||
|
@ -65,9 +65,7 @@ class Companies extends Controller
|
||||
if ($logo) {
|
||||
$company->attachMedia($logo, 'logo');
|
||||
|
||||
$logo_path = $logo->directory . '/' . $logo->basename;
|
||||
|
||||
setting()->set('general.company_logo', $logo_path);
|
||||
setting()->set('general.company_logo', $logo->id);
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,9 +146,7 @@ class Companies extends Controller
|
||||
if ($logo) {
|
||||
$company->attachMedia($logo, 'logo');
|
||||
|
||||
$logo_path = $logo->directory . '/' . $logo->basename;
|
||||
|
||||
setting()->set('general.company_logo', $logo_path);
|
||||
setting()->set('general.company_logo', $logo->id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -132,7 +132,7 @@ class Bills extends Controller
|
||||
|
||||
// Upload attachment
|
||||
if ($request->file('attachment')) {
|
||||
$media = $this->getMedia($request->file('attachment'), 'revenues');
|
||||
$media = $this->getMedia($request->file('attachment'), 'bills');
|
||||
|
||||
$bill->attachMedia($media, 'attachment');
|
||||
}
|
||||
@ -597,13 +597,6 @@ class Bills extends Controller
|
||||
|
||||
$bill = Bill::find($request['bill_id']);
|
||||
|
||||
// Upload attachment
|
||||
if ($request->file('attachment')) {
|
||||
$media = $this->getMedia($request->file('attachment'), 'payments');
|
||||
|
||||
$bill->attachMedia($media, 'attachment');
|
||||
}
|
||||
|
||||
$total_amount = $bill->amount;
|
||||
|
||||
$amount = (double) $request['amount'];
|
||||
@ -640,6 +633,13 @@ class Bills extends Controller
|
||||
|
||||
$bill_payment = BillPayment::create($request->input());
|
||||
|
||||
// Upload attachment
|
||||
if ($request->file('attachment')) {
|
||||
$media = $this->getMedia($request->file('attachment'), 'bills');
|
||||
|
||||
$bill_payment->attachMedia($media, 'attachment');
|
||||
}
|
||||
|
||||
$request['status_code'] = $bill->bill_status_code;
|
||||
$request['notify'] = 0;
|
||||
|
||||
|
@ -141,7 +141,7 @@ class Invoices extends Controller
|
||||
|
||||
// Upload attachment
|
||||
if ($request->file('attachment')) {
|
||||
$media = $this->getMedia($request->file('attachment'), 'revenues');
|
||||
$media = $this->getMedia($request->file('attachment'), 'invoices');
|
||||
|
||||
$invoice->attachMedia($media, 'attachment');
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ use App\Models\Banking\Account;
|
||||
use App\Models\Company\Company;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Models\Setting\Setting;
|
||||
use App\Models\Common\Media;
|
||||
use App\Models\Setting\Tax;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Uploads;
|
||||
@ -26,11 +27,20 @@ class Settings extends Controller
|
||||
public function edit()
|
||||
{
|
||||
/*$setting = Setting::all()->pluck('value', 'key');*/
|
||||
$setting = Setting::all()->map(function($s) {
|
||||
$setting = Setting::all()->map(function ($s) {
|
||||
$s->key = str_replace('general.', '', $s->key);
|
||||
|
||||
return $s;
|
||||
})->pluck('value', 'key');
|
||||
|
||||
$company_logo = $setting->pull('company_logo');
|
||||
|
||||
$setting['company_logo'] = Media::find($company_logo);
|
||||
|
||||
$invoice_logo = $setting->pull('invoice_logo');
|
||||
|
||||
$setting['invoice_logo'] = Media::find($invoice_logo);
|
||||
|
||||
$timezones = $this->getTimezones();
|
||||
|
||||
$accounts = Account::enabled()->pluck('name', 'id');
|
||||
@ -88,7 +98,13 @@ class Settings extends Controller
|
||||
{
|
||||
$fields = $request->all();
|
||||
$company_id = $request->get('company_id');
|
||||
|
||||
|
||||
if (empty($company_id)) {
|
||||
$company_id = session('company_id');
|
||||
}
|
||||
|
||||
$company = Company::find($company_id);
|
||||
|
||||
$skip_keys = ['company_id', '_method', '_token'];
|
||||
$file_keys = ['company_logo', 'invoice_logo'];
|
||||
|
||||
@ -102,7 +118,14 @@ class Settings extends Controller
|
||||
|
||||
// Process file uploads
|
||||
if (in_array($key, $file_keys)) {
|
||||
$value = $this->getUploadedFilePath($request->file($key), 'settings');
|
||||
// Upload attachment
|
||||
if ($request->file($key)) {
|
||||
$media = $this->getMedia($request->file($key), 'settings');
|
||||
|
||||
$company->attachMedia($media, $key);
|
||||
|
||||
$value = $media->id;
|
||||
}
|
||||
|
||||
// Prevent reset
|
||||
if (empty($value)) {
|
||||
@ -133,5 +156,4 @@ class Settings extends Controller
|
||||
|
||||
return redirect('settings/settings');
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user