import
This commit is contained in:
22
app/Http/Controllers/Common/Import.php
Normal file
22
app/Http/Controllers/Common/Import.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Common;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class Import extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @param $group
|
||||
* @param $type
|
||||
* @return Response
|
||||
*/
|
||||
public function create($group, $type)
|
||||
{
|
||||
$path = $group . '/' . $type;
|
||||
|
||||
return view('common.import.create', compact('group', 'type', 'path'));
|
||||
}
|
||||
}
|
@ -39,7 +39,7 @@ class Controller extends BaseController
|
||||
}
|
||||
|
||||
// Add CRUD permission check
|
||||
$this->middleware('permission:create-' . $controller)->only(['create', 'store', 'duplicate']);
|
||||
$this->middleware('permission:create-' . $controller)->only(['create', 'store', 'duplicate', 'import']);
|
||||
$this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit']);
|
||||
$this->middleware('permission:update-' . $controller)->only(['update']);
|
||||
$this->middleware('permission:delete-' . $controller)->only('destroy');
|
||||
|
@ -22,6 +22,7 @@ use App\Models\Setting\Tax;
|
||||
use App\Traits\Currencies;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Uploads;
|
||||
use App\Utilities\ImportFile;
|
||||
use App\Utilities\Modules;
|
||||
use Date;
|
||||
|
||||
@ -284,6 +285,31 @@ class Bills extends Controller
|
||||
return redirect('expenses/bills/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Bill::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('expenses/bills');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -10,7 +10,7 @@ use App\Models\Expense\Vendor;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Traits\Uploads;
|
||||
|
||||
use App\Utilities\ImportFile;
|
||||
use App\Utilities\Modules;
|
||||
|
||||
class Payments extends Controller
|
||||
@ -108,6 +108,31 @@ class Payments extends Controller
|
||||
return redirect('expenses/payments/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Payment::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('expenses/payments');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Expense\Vendor as Request;
|
||||
use App\Models\Expense\Vendor;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Utilities\ImportFile;
|
||||
|
||||
class Vendors extends Controller
|
||||
{
|
||||
@ -70,6 +71,31 @@ class Vendors extends Controller
|
||||
return redirect('expenses/vendors/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Vendor::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('expenses/vendors');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -7,6 +7,7 @@ use App\Http\Requests\Income\Customer as Request;
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\Income\Customer;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Utilities\ImportFile;
|
||||
|
||||
class Customers extends Controller
|
||||
{
|
||||
@ -94,6 +95,31 @@ class Customers extends Controller
|
||||
return redirect('incomes/customers/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Customer::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('incomes/customers');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -26,6 +26,7 @@ use App\Traits\Currencies;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Incomes;
|
||||
use App\Traits\Uploads;
|
||||
use App\Utilities\ImportFile;
|
||||
use App\Utilities\Modules;
|
||||
use Date;
|
||||
use File;
|
||||
@ -276,6 +277,31 @@ class Invoices extends Controller
|
||||
return redirect('incomes/invoices/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Invoice::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('incomes/invoices');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -12,6 +12,7 @@ use App\Models\Setting\Currency;
|
||||
use App\Traits\Currencies;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Uploads;
|
||||
use App\Utilities\ImportFile;
|
||||
use App\Utilities\Modules;
|
||||
|
||||
class Revenues extends Controller
|
||||
@ -109,6 +110,31 @@ class Revenues extends Controller
|
||||
return redirect('incomes/revenues/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Revenue::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('incomes/revenues');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
@ -9,6 +9,7 @@ use App\Models\Setting\Category;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Models\Setting\Tax;
|
||||
use App\Traits\Uploads;
|
||||
use App\Utilities\ImportFile;
|
||||
|
||||
class Items extends Controller
|
||||
{
|
||||
@ -85,6 +86,31 @@ class Items extends Controller
|
||||
return redirect('items/items/' . $clone->id . '/edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportFile $import
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportFile $import)
|
||||
{
|
||||
$rows = $import->all();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$data = $row->toArray();
|
||||
$data['company_id'] = session('company_id');
|
||||
|
||||
Item::create($data);
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('items/items');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
|
48
app/Listeners/Updates/Version110.php
Normal file
48
app/Listeners/Updates/Version110.php
Normal file
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Listeners\Updates;
|
||||
|
||||
use App\Events\UpdateFinished;
|
||||
use App\Models\Auth\Role;
|
||||
use App\Models\Auth\Permission;
|
||||
|
||||
class Version110 extends Listener
|
||||
{
|
||||
const ALIAS = 'core';
|
||||
|
||||
const VERSION = '1.1.0';
|
||||
|
||||
/**
|
||||
* Handle the event.
|
||||
*
|
||||
* @param $event
|
||||
* @return void
|
||||
*/
|
||||
public function handle(UpdateFinished $event)
|
||||
{
|
||||
// Check if should listen
|
||||
if (!$this->check($event)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Create permission
|
||||
$permission = Permission::firstOrCreate([
|
||||
'name' => 'create-common-import',
|
||||
'display_name' => 'Create Common Import',
|
||||
'description' => 'Create Common Import',
|
||||
]);
|
||||
|
||||
// Attach permission to roles
|
||||
$roles = Role::all();
|
||||
|
||||
foreach ($roles as $role) {
|
||||
$allowed = ['admin', 'manager'];
|
||||
|
||||
if (!in_array($role->name, $allowed)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$role->attachPermission($permission);
|
||||
}
|
||||
}
|
||||
}
|
@ -18,6 +18,7 @@ class EventServiceProvider extends ServiceProvider
|
||||
'App\Listeners\Updates\Version107',
|
||||
'App\Listeners\Updates\Version108',
|
||||
'App\Listeners\Updates\Version109',
|
||||
'App\Listeners\Updates\Version110',
|
||||
],
|
||||
'Illuminate\Auth\Events\Login' => [
|
||||
'App\Listeners\Auth\Login',
|
||||
|
36
app/Utilities/ImportFile.php
Normal file
36
app/Utilities/ImportFile.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use Maatwebsite\Excel\Files\ExcelFile;
|
||||
use Storage;
|
||||
|
||||
class ImportFile extends ExcelFile
|
||||
{
|
||||
|
||||
public function getFile()
|
||||
{
|
||||
$request = request();
|
||||
|
||||
if (!$request->hasFile('import')) {
|
||||
flash(trans('messages.error.no_file'))->error();
|
||||
|
||||
redirect()->back()->send();
|
||||
}
|
||||
|
||||
$folder = session('company_id') . '/imports';
|
||||
|
||||
// Upload file
|
||||
$path = Storage::path($request->import->store($folder));
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
public function getFilters()
|
||||
{
|
||||
return [
|
||||
'chunk'
|
||||
];
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user