added export and improved import

This commit is contained in:
denisdulici 2018-06-11 03:47:32 +03:00
parent c274d38f13
commit 3d68496145
35 changed files with 347 additions and 115 deletions

View File

@ -37,7 +37,7 @@ class Items extends Controller
*/ */
public function show() public function show()
{ {
return redirect('common/items'); return redirect()->route('items.index');
} }
/** /**
@ -76,7 +76,7 @@ class Items extends Controller
flash($message)->success(); flash($message)->success();
return redirect('common/items'); return redirect()->route('items.index');
} }
/** /**
@ -94,7 +94,7 @@ class Items extends Controller
flash($message)->success(); flash($message)->success();
return redirect('common/items/' . $clone->id . '/edit'); return redirect()->route('items.edit', $item->id);
} }
/** /**
@ -106,20 +106,26 @@ class Items extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'items') {
return;
}
foreach ($rows as $row) { // Loop through all rows
$data = $row->toArray(); $sheet->each(function ($row) {
$data['company_id'] = session('company_id'); $data = $row->toArray();
$data['company_id'] = session('company_id');
Item::create($data); Item::create($data);
} });
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
flash($message)->success(); flash($message)->success();
return redirect('common/items'); return redirect()->route('items.index');
} }
/** /**
@ -161,7 +167,7 @@ class Items extends Controller
flash($message)->success(); flash($message)->success();
return redirect('common/items'); return redirect()->route('items.index');
} }
/** /**
@ -190,7 +196,23 @@ class Items extends Controller
flash($message)->warning(); flash($message)->warning();
} }
return redirect('common/items'); return redirect()->route('items.index');
}
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('items', function($excel) {
$excel->sheet('items', function($sheet) {
$sheet->fromModel(Item::filter(request()->input())->get()->makeHidden([
'id', 'company_id', 'item_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
})->download('xlsx');
} }
public function autocomplete() public function autocomplete()

View File

@ -291,14 +291,44 @@ class Bills extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
$class = '\App\Models\Expense\\' . str_singular(studly_case($sheet->getTitle()));
foreach ($rows as $row) { if (!class_exists($class)) {
$data = $row->toArray(); return;
$data['company_id'] = session('company_id'); }
Bill::create($data); $sheet->each(function ($row) use ($sheet, $class) {
} $data = $row->toArray();
$data['company_id'] = session('company_id');
switch ($sheet->getTitle()) {
case 'bills':
if (empty($data['vendor_email'])) {
$data['vendor_email'] = '';
}
break;
case 'bill_items':
if (empty($data['tax_id'])) {
$data['tax_id'] = '0';
}
break;
case 'bill_histories':
if (empty($data['notify'])) {
$data['notify'] = '0';
}
break;
case 'bill_totals':
if (empty($data['amount'])) {
$data['amount'] = '0';
}
break;
}
$class::create($data);
});
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]);
@ -490,6 +520,35 @@ class Bills extends Controller
return redirect('expenses/bills'); return redirect('expenses/bills');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('bills', function($excel) {
$bills = Bill::with(['items', 'payments', 'totals'])->filter(request()->input())->get();
$excel->sheet('invoices', function($sheet) use ($bills) {
$sheet->fromModel($bills->makeHidden([
'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at', 'attachment', 'discount', 'items', 'payments', 'totals', 'media'
]));
});
$tables = ['items', 'histories', 'payments', 'totals'];
foreach ($tables as $table) {
$excel->sheet('bill_' . $table, function($sheet) use ($bills, $table) {
$bills->each(function ($bill) use ($sheet, $table) {
$sheet->fromModel($bill->$table->makeHidden([
'id', 'company_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
});
}
})->download('xlsx');
}
/** /**
* Mark the bill as received. * Mark the bill as received.
* *

View File

@ -133,14 +133,20 @@ class Payments extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'payments') {
return;
}
foreach ($rows as $row) { // Loop through all rows
$data = $row->toArray(); $sheet->each(function ($row) {
$data['company_id'] = session('company_id'); $data = $row->toArray();
$data['company_id'] = session('company_id');
Payment::create($data); Payment::create($data);
} });
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]);
@ -231,4 +237,20 @@ class Payments extends Controller
return redirect('expenses/payments'); return redirect('expenses/payments');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('payments', function($excel) {
$excel->sheet('payments', function($sheet) {
$sheet->fromModel(Payment::filter(request()->input())->get()->makeHidden([
'id', 'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
})->download('xlsx');
}
} }

View File

@ -171,19 +171,25 @@ class Vendors extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
foreach ($rows as $row) { if ($sheet->getTitle() != 'vendors') {
$data = $row->toArray(); return;
if (empty($data['email'])) {
$data['email'] = '';
} }
$data['company_id'] = session('company_id'); // Loop through all rows
$sheet->each(function ($row) {
$data = $row->toArray();
Vendor::create($data); if (empty($data['email'])) {
} $data['email'] = '';
}
$data['company_id'] = session('company_id');
Vendor::create($data);
});
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]);
@ -265,6 +271,22 @@ class Vendors extends Controller
return redirect('expenses/vendors'); return redirect('expenses/vendors');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('vendors', function($excel) {
$excel->sheet('vendors', function($sheet) {
$sheet->fromModel(Vendor::filter(request()->input())->get()->makeHidden([
'id', 'company_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
})->download('xlsx');
}
public function currency() public function currency()
{ {
$vendor_id = request('vendor_id'); $vendor_id = request('vendor_id');

View File

@ -191,19 +191,25 @@ class Customers extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
foreach ($rows as $row) { if ($sheet->getTitle() != 'customers') {
$data = $row->toArray(); return;
if (empty($data['email'])) {
$data['email'] = '';
} }
$data['company_id'] = session('company_id'); // Loop through all rows
$sheet->each(function ($row) {
$data = $row->toArray();
Customer::create($data); if (empty($data['email'])) {
} $data['email'] = '';
}
$data['company_id'] = session('company_id');
Customer::create($data);
});
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]);
@ -301,6 +307,22 @@ class Customers extends Controller
return redirect('incomes/customers'); return redirect('incomes/customers');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('customers', function($excel) {
$excel->sheet('customers', function($sheet) {
$sheet->fromModel(Customer::filter(request()->input())->get()->makeHidden([
'id', 'company_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
})->download('xlsx');
}
public function currency() public function currency()
{ {
$customer_id = request('customer_id'); $customer_id = request('customer_id');

View File

@ -312,14 +312,44 @@ class Invoices extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
$class = '\App\Models\Income\\' . str_singular(studly_case($sheet->getTitle()));
foreach ($rows as $row) { if (!class_exists($class)) {
$data = $row->toArray(); return;
$data['company_id'] = session('company_id'); }
Invoice::create($data); $sheet->each(function ($row) use ($sheet, $class) {
} $data = $row->toArray();
$data['company_id'] = session('company_id');
switch ($sheet->getTitle()) {
case 'invoices':
if (empty($data['customer_email'])) {
$data['customer_email'] = '';
}
break;
case 'invoice_items':
if (empty($data['tax_id'])) {
$data['tax_id'] = '0';
}
break;
case 'invoice_histories':
if (empty($data['notify'])) {
$data['notify'] = '0';
}
break;
case 'invoice_totals':
if (empty($data['amount'])) {
$data['amount'] = '0';
}
break;
}
$class::create($data);
});
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]);
@ -511,6 +541,35 @@ class Invoices extends Controller
return redirect('incomes/invoices'); return redirect('incomes/invoices');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('invoices', function($excel) {
$invoices = Invoice::with(['items', 'payments', 'totals'])->filter(request()->input())->get();
$excel->sheet('invoices', function($sheet) use ($invoices) {
$sheet->fromModel($invoices->makeHidden([
'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at', 'attachment', 'discount', 'items', 'payments', 'totals', 'media'
]));
});
$tables = ['items', 'histories', 'payments', 'totals'];
foreach ($tables as $table) {
$excel->sheet('invoice_' . $table, function($sheet) use ($invoices, $table) {
$invoices->each(function ($bill) use ($sheet, $table) {
$sheet->fromModel($bill->$table->makeHidden([
'id', 'company_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
});
}
})->download('xlsx');
}
/** /**
* Mark the invoice as sent. * Mark the invoice as sent.
* *

View File

@ -135,14 +135,20 @@ class Revenues extends Controller
*/ */
public function import(ImportFile $import) public function import(ImportFile $import)
{ {
$rows = $import->all(); // Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'revenues') {
return;
}
foreach ($rows as $row) { // Loop through all rows
$data = $row->toArray(); $sheet->each(function ($row) {
$data['company_id'] = session('company_id'); $data = $row->toArray();
$data['company_id'] = session('company_id');
Revenue::create($data); Revenue::create($data);
} });
});
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]); $message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]);
@ -233,4 +239,20 @@ class Revenues extends Controller
return redirect('incomes/revenues'); return redirect('incomes/revenues');
} }
/**
* Export the specified resource.
*
* @return Response
*/
public function export()
{
\Excel::create('revenues', function($excel) {
$excel->sheet('revenues', function($sheet) {
$sheet->fromModel(Revenue::filter(request()->input())->get()->makeHidden([
'id', 'company_id', 'parent_id', 'created_at', 'updated_at', 'deleted_at'
]));
});
})->download('xlsx');
}
} }

View File

@ -476,7 +476,7 @@ return array(
| When set to true, it will return a sheet collection instead. | When set to true, it will return a sheet collection instead.
| |
*/ */
'force_sheets_collection' => false, 'force_sheets_collection' => true,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -1,2 +0,0 @@
"bill_number","order_number","bill_status_code","billed_at","due_at","amount","currency_code","currency_rate","vendor_id","vendor_name","vendor_email","vendor_tax_number","vendor_phone","vendor_address","notes","category_id"
"987654","","received","2017-11-30","2017-12-07","10.0000","USD","1.00000000","1","Test Vendor","test@vendor.com","","","","","4"
1 bill_number order_number bill_status_code billed_at due_at amount currency_code currency_rate vendor_id vendor_name vendor_email vendor_tax_number vendor_phone vendor_address notes category_id
2 987654 received 2017-11-30 2017-12-07 10.0000 USD 1.00000000 1 Test Vendor test@vendor.com 4

Binary file not shown.

View File

@ -1,2 +0,0 @@
"user_id","name","email","tax_number","phone","address","website","currency_code","enabled"
"","Test Customer","test@customer.com","","","","","USD","1"
1 user_id name email tax_number phone address website currency_code enabled
2 Test Customer test@customer.com USD 1

Binary file not shown.

View File

@ -1,2 +0,0 @@
"invoice_number","order_number","invoice_status_code","invoiced_at","due_at","amount","currency_code","currency_rate","customer_id","customer_name","customer_email","customer_tax_number","customer_phone","customer_address","notes","category_id"
"INV-00001","","sent","2017-11-30","2017-12-07","10.0000","USD","1.00000000","1","Test Customer","test@customer.com","","","","","3"
1 invoice_number order_number invoice_status_code invoiced_at due_at amount currency_code currency_rate customer_id customer_name customer_email customer_tax_number customer_phone customer_address notes category_id
2 INV-00001 sent 2017-11-30 2017-12-07 10.0000 USD 1.00000000 1 Test Customer test@customer.com 3

Binary file not shown.

View File

@ -1,2 +0,0 @@
"name","sku","description","sale_price","purchase_price","quantity","category_id","tax_id","enabled"
"Test Item","test-item","","10.0000","5.0000","1","5","2","1"
1 name sku description sale_price purchase_price quantity category_id tax_id enabled
2 Test Item test-item 10.0000 5.0000 1 5 2 1

Binary file not shown.

View File

@ -1,2 +0,0 @@
"account_id","paid_at","amount","currency_code","currency_rate","vendor_id","description","category_id","payment_method","reference"
"1","2017-11-30","10.0000","USD","1.00000000","1","","4","offlinepayment.cash.1",""
1 account_id paid_at amount currency_code currency_rate vendor_id description category_id payment_method reference
2 1 2017-11-30 10.0000 USD 1.00000000 1 4 offlinepayment.cash.1

Binary file not shown.

View File

@ -1,2 +0,0 @@
"account_id","paid_at","amount","currency_code","currency_rate","customer_id","description","category_id","payment_method","reference"
"1","2017-11-30","10.0000","USD","1.00000000","","","3","offlinepayment.cash.1",""
1 account_id paid_at amount currency_code currency_rate customer_id description category_id payment_method reference
2 1 2017-11-30 10.0000 USD 1.00000000 3 offlinepayment.cash.1

Binary file not shown.

View File

@ -1,2 +0,0 @@
"name","email","tax_number","phone","address","website","currency_code","enabled"
"Test Vendor","test@vendor.com","","","","","USD","1"
1 name email tax_number phone address website currency_code enabled
2 Test Vendor test@vendor.com USD 1

Binary file not shown.

View File

@ -100,6 +100,7 @@ return [
'overdue' => 'Overdue', 'overdue' => 'Overdue',
'partially' => 'Partially', 'partially' => 'Partially',
'partially_paid' => 'Partially Paid', 'partially_paid' => 'Partially Paid',
'export' => 'Export',
'title' => [ 'title' => [
'new' => 'New :type', 'new' => 'New :type',

View File

@ -4,6 +4,6 @@ return [
'import' => 'Import', 'import' => 'Import',
'title' => 'Import :type', 'title' => 'Import :type',
'message' => 'Allowed file types: CSV, XLS. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.', 'message' => 'Allowed file types: XLS, XLSX. Please, <a target="_blank" href=":link"><strong>download</strong></a> the sample file.',
]; ];

View File

@ -9,7 +9,7 @@
<div class="box-body"> <div class="box-body">
<div class="col-md-12"> <div class="col-md-12">
<div class="alert alert-info alert-important"> <div class="alert alert-info alert-important">
{!! trans('import.message', ['link' => url('public/files/import/' . $type . '.csv')]) !!} {!! trans('import.message', ['link' => url('public/files/import/' . $type . '.xlsx')]) !!}
</div> </div>
</div> </div>
<div class="form-group col-md-12 required {{ $errors->has('import') ? 'has-error' : '' }}" style="min-height: 59px"> <div class="form-group col-md-12 required {{ $errors->has('import') ? 'has-error' : '' }}" style="min-height: 59px">

View File

@ -5,7 +5,7 @@
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->
<div class="box box-success"> <div class="box box-success">
{!! Form::open(['url' => 'common/items', 'files' => true, 'role' => 'form']) !!} {!! Form::open(['route' => 'items.store', 'files' => true, 'role' => 'form']) !!}
<div class="box-body"> <div class="box-body">
{{ Form::textGroup('name', trans('general.name'), 'id-card-o') }} {{ Form::textGroup('name', trans('general.name'), 'id-card-o') }}

View File

@ -8,7 +8,7 @@
{!! Form::model($item, [ {!! Form::model($item, [
'method' => 'PATCH', 'method' => 'PATCH',
'files' => true, 'files' => true,
'url' => ['common/items', $item->id], 'route' => ['items.update', $item->id],
'role' => 'form' 'role' => 'form'
]) !!} ]) !!}

View File

@ -2,18 +2,19 @@
@section('title', trans_choice('general.items', 2)) @section('title', trans_choice('general.items', 2))
@permission('create-common-items')
@section('new_button') @section('new_button')
<span class="new-button"><a href="{{ url('common/items/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> @permission('create-common-items')
<span><a href="{{ url('common/import/common/items') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span class="new-button"><a href="{{ route('items.create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
@endsection <span><a href="{{ route('import.create', ['common', 'items']) }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endpermission @endpermission
<span><a href="{{ route('items.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->
<div class="box box-success"> <div class="box box-success">
<div class="box-header with-border"> <div class="box-header with-border">
{!! Form::open(['url' => 'common/items', 'role' => 'form', 'method' => 'GET']) !!} {!! Form::open(['route' => 'items.index', 'role' => 'form', 'method' => 'GET']) !!}
<div class="pull-left"> <div class="pull-left">
<span class="title-filter hidden-xs">{{ trans('general.search') }}:</span> <span class="title-filter hidden-xs">{{ trans('general.search') }}:</span>
{!! Form::text('search', request('search'), ['class' => 'form-control input-filter input-sm', 'placeholder' => trans('general.search_placeholder')]) !!} {!! Form::text('search', request('search'), ['class' => 'form-control input-filter input-sm', 'placeholder' => trans('general.search_placeholder')]) !!}
@ -47,7 +48,7 @@
@foreach($items as $item) @foreach($items as $item)
<tr> <tr>
<td class="hidden-xs"><img src="{{ $item->picture ? Storage::url($item->picture->id) : asset('public/img/akaunting-logo-green.png') }}" class="img-thumbnail" width="50" alt="{{ $item->name }}"></td> <td class="hidden-xs"><img src="{{ $item->picture ? Storage::url($item->picture->id) : asset('public/img/akaunting-logo-green.png') }}" class="img-thumbnail" width="50" alt="{{ $item->name }}"></td>
<td><a href="{{ url('common/items/' . $item->id . '/edit') }}">{{ $item->name }}</a></td> <td><a href="{{ route('items.edit', $item->id) }}">{{ $item->name }}</a></td>
<td class="hidden-xs">{{ $item->category ? $item->category->name : trans('general.na') }}</td> <td class="hidden-xs">{{ $item->category ? $item->category->name : trans('general.na') }}</td>
<td class="hidden-xs">{{ $item->quantity }}</td> <td class="hidden-xs">{{ $item->quantity }}</td>
<td class="text-right amount-space">{{ money($item->sale_price, setting('general.default_currency'), true) }}</td> <td class="text-right amount-space">{{ money($item->sale_price, setting('general.default_currency'), true) }}</td>
@ -65,10 +66,10 @@
<i class="fa fa-ellipsis-h"></i> <i class="fa fa-ellipsis-h"></i>
</button> </button>
<ul class="dropdown-menu dropdown-menu-right"> <ul class="dropdown-menu dropdown-menu-right">
<li><a href="{{ url('common/items/' . $item->id . '/edit') }}">{{ trans('general.edit') }}</a></li> <li><a href="{{ route('items.edit', $item->id) }}">{{ trans('general.edit') }}</a></li>
<li class="divider"></li> <li class="divider"></li>
@permission('create-common-items') @permission('create-common-items')
<li><a href="{{ url('common/items/' . $item->id . '/duplicate') }}">{{ trans('general.duplicate') }}</a></li> <li><a href="{{ route('items.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a></li>
<li class="divider"></li> <li class="divider"></li>
@endpermission @endpermission
@permission('delete-common-items') @permission('delete-common-items')

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.bills', 2)) @section('title', trans_choice('general.bills', 2))
@permission('create-expenses-bills')
@section('new_button') @section('new_button')
@permission('create-expenses-bills')
<span class="new-button"><a href="{{ url('expenses/bills/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('expenses/bills/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/expenses/bills') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/expenses/bills') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('bills.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.payments', 2)) @section('title', trans_choice('general.payments', 2))
@permission('create-expenses-payments')
@section('new_button') @section('new_button')
@permission('create-expenses-payments')
<span class="new-button"><a href="{{ url('expenses/payments/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('expenses/payments/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/expenses/payments') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/expenses/payments') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('payments.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.vendors', 2)) @section('title', trans_choice('general.vendors', 2))
@permission('create-expenses-vendors')
@section('new_button') @section('new_button')
@permission('create-expenses-vendors')
<span class="new-button"><a href="{{ url('expenses/vendors/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('expenses/vendors/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/expenses/vendors') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/expenses/vendors') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('vendors.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.customers', 2)) @section('title', trans_choice('general.customers', 2))
@permission('create-incomes-customers')
@section('new_button') @section('new_button')
@permission('create-incomes-customers')
<span class="new-button"><a href="{{ url('incomes/customers/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('incomes/customers/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/incomes/customers') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/incomes/customers') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('customers.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.invoices', 2)) @section('title', trans_choice('general.invoices', 2))
@permission('create-incomes-invoices')
@section('new_button') @section('new_button')
@permission('create-incomes-invoices')
<span class="new-button"><a href="{{ url('incomes/invoices/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('incomes/invoices/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/incomes/invoices') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/incomes/invoices') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('invoices.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.revenues', 2)) @section('title', trans_choice('general.revenues', 2))
@permission('create-incomes-revenues')
@section('new_button') @section('new_button')
@permission('create-incomes-revenues')
<span class="new-button"><a href="{{ url('incomes/revenues/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span> <span class="new-button"><a href="{{ url('incomes/revenues/create') }}" class="btn btn-success btn-sm"><span class="fa fa-plus"></span> &nbsp;{{ trans('general.add_new') }}</a></span>
<span><a href="{{ url('common/import/incomes/revenues') }}" class="btn btn-success btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span> <span><a href="{{ url('common/import/incomes/revenues') }}" class="btn btn-default btn-sm"><span class="fa fa-download"></span> &nbsp;{{ trans('import.import') }}</a></span>
@endsection
@endpermission @endpermission
<span><a href="{{ route('revenues.export', request()->input()) }}" class="btn btn-default btn-sm"><span class="fa fa-upload"></span> &nbsp;{{ trans('general.export') }}</a></span>
@endsection
@section('content') @section('content')
<!-- Default box --> <!-- Default box -->

View File

@ -15,16 +15,17 @@ Route::group(['middleware' => 'language'], function () {
}); });
Route::group(['prefix' => 'common'], function () { Route::group(['prefix' => 'common'], function () {
Route::get('companies/{company}/set', 'Common\Companies@set'); Route::get('companies/{company}/set', 'Common\Companies@set')->name('companies.switch');
Route::resource('companies', 'Common\Companies'); Route::resource('companies', 'Common\Companies');
Route::get('dashboard/cashflow', 'Common\Dashboard@cashFlow'); Route::get('dashboard/cashflow', 'Common\Dashboard@cashFlow')->name('dashboard.cashflow');
Route::get('import/{group}/{type}', 'Common\Import@create'); Route::get('import/{group}/{type}', 'Common\Import@create')->name('import.create');
Route::get('items/autocomplete', 'Common\Items@autocomplete'); Route::get('items/autocomplete', 'Common\Items@autocomplete')->name('items.autocomplete');
Route::post('items/totalItem', 'Common\Items@totalItem'); Route::post('items/totalItem', 'Common\Items@totalItem')->name('items.total');
Route::get('items/{item}/duplicate', 'Common\Items@duplicate'); Route::get('items/{item}/duplicate', 'Common\Items@duplicate')->name('items.duplicate');
Route::post('items/import', 'Common\Items@import'); Route::post('items/import', 'Common\Items@import')->name('items.import');
Route::get('items/export', 'Common\Items@export')->name('items.export');
Route::resource('items', 'Common\Items'); Route::resource('items', 'Common\Items');
Route::get('search/search', 'Common\Search@search'); Route::get('search/search', 'Common\Search@search')->name('search.search');
Route::resource('search', 'Common\Search'); Route::resource('search', 'Common\Search');
}); });
@ -48,16 +49,19 @@ Route::group(['middleware' => 'language'], function () {
Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate'); Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate');
Route::post('invoices/payment', 'Incomes\Invoices@payment'); Route::post('invoices/payment', 'Incomes\Invoices@payment');
Route::delete('invoices/payment/{payment}', 'Incomes\Invoices@paymentDestroy'); Route::delete('invoices/payment/{payment}', 'Incomes\Invoices@paymentDestroy');
Route::post('invoices/import', 'Incomes\Invoices@import'); Route::post('invoices/import', 'Incomes\Invoices@import')->name('invoices.import');
Route::get('invoices/export', 'Incomes\Invoices@export')->name('invoices.export');
Route::resource('invoices', 'Incomes\Invoices'); Route::resource('invoices', 'Incomes\Invoices');
Route::get('revenues/{revenue}/duplicate', 'Incomes\Revenues@duplicate'); Route::get('revenues/{revenue}/duplicate', 'Incomes\Revenues@duplicate');
Route::post('revenues/import', 'Incomes\Revenues@import'); Route::post('revenues/import', 'Incomes\Revenues@import')->name('revenues.import');
Route::get('revenues/export', 'Incomes\Revenues@export')->name('revenues.export');
Route::resource('revenues', 'Incomes\Revenues'); Route::resource('revenues', 'Incomes\Revenues');
Route::get('customers/currency', 'Incomes\Customers@currency'); Route::get('customers/currency', 'Incomes\Customers@currency');
Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate'); Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate');
Route::post('customers/customer', 'Incomes\Customers@customer'); Route::post('customers/customer', 'Incomes\Customers@customer');
Route::post('customers/field', 'Incomes\Customers@field'); Route::post('customers/field', 'Incomes\Customers@field');
Route::post('customers/import', 'Incomes\Customers@import'); Route::post('customers/import', 'Incomes\Customers@import')->name('customers.import');
Route::get('customers/export', 'Incomes\Customers@export')->name('customers.export');
Route::resource('customers', 'Incomes\Customers'); Route::resource('customers', 'Incomes\Customers');
}); });
@ -68,15 +72,18 @@ Route::group(['middleware' => 'language'], function () {
Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate'); Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate');
Route::post('bills/payment', 'Expenses\Bills@payment'); Route::post('bills/payment', 'Expenses\Bills@payment');
Route::delete('bills/payment/{payment}', 'Expenses\Bills@paymentDestroy'); Route::delete('bills/payment/{payment}', 'Expenses\Bills@paymentDestroy');
Route::post('bills/import', 'Expenses\Bills@import'); Route::post('bills/import', 'Expenses\Bills@import')->name('bills.import');
Route::get('bills/export', 'Expenses\Bills@export')->name('bills.export');
Route::resource('bills', 'Expenses\Bills'); Route::resource('bills', 'Expenses\Bills');
Route::get('payments/{payment}/duplicate', 'Expenses\Payments@duplicate'); Route::get('payments/{payment}/duplicate', 'Expenses\Payments@duplicate');
Route::post('payments/import', 'Expenses\Payments@import'); Route::post('payments/import', 'Expenses\Payments@import')->name('payments.import');
Route::get('payments/export', 'Expenses\Payments@export')->name('payments.export');
Route::resource('payments', 'Expenses\Payments'); Route::resource('payments', 'Expenses\Payments');
Route::get('vendors/currency', 'Expenses\Vendors@currency'); Route::get('vendors/currency', 'Expenses\Vendors@currency');
Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate'); Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate');
Route::post('vendors/vendor', 'Expenses\Vendors@vendor'); Route::post('vendors/vendor', 'Expenses\Vendors@vendor');
Route::post('vendors/import', 'Expenses\Vendors@import'); Route::post('vendors/import', 'Expenses\Vendors@import')->name('vendors.import');
Route::get('vendors/export', 'Expenses\Vendors@export')->name('vendors.export');
Route::resource('vendors', 'Expenses\Vendors'); Route::resource('vendors', 'Expenses\Vendors');
}); });
@ -134,6 +141,9 @@ Route::group(['middleware' => 'language'], function () {
Route::get('updates/post/{alias}/{old}/{new}', 'Install\Updates@post'); Route::get('updates/post/{alias}/{old}/{new}', 'Install\Updates@post');
Route::resource('updates', 'Install\Updates'); Route::resource('updates', 'Install\Updates');
}); });
/* @deprecated */
Route::post('items/items/totalItem', 'Common\Items@totalItem');
}); });
Route::group(['middleware' => ['customermenu', 'permission:read-customer-panel']], function () { Route::group(['middleware' => ['customermenu', 'permission:read-customer-panel']], function () {