Merge pull request #377 from denisdulici/export

Export
This commit is contained in:
Denis Duliçi 2018-06-11 03:54:15 +03:00 committed by GitHub
commit 1a0aa3c3cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 347 additions and 115 deletions

View File

@ -37,7 +37,7 @@ class Items extends Controller
*/
public function show()
{
return redirect('common/items');
return redirect()->route('items.index');
}
/**
@ -76,7 +76,7 @@ class Items extends Controller
flash($message)->success();
return redirect('common/items');
return redirect()->route('items.index');
}
/**
@ -94,7 +94,7 @@ class Items extends Controller
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)
{
$rows = $import->all();
// Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'items') {
return;
}
foreach ($rows as $row) {
$data = $row->toArray();
$data['company_id'] = session('company_id');
// Loop through all rows
$sheet->each(function ($row) {
$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)]);
flash($message)->success();
return redirect('common/items');
return redirect()->route('items.index');
}
/**
@ -161,7 +167,7 @@ class Items extends Controller
flash($message)->success();
return redirect('common/items');
return redirect()->route('items.index');
}
/**
@ -190,7 +196,23 @@ class Items extends Controller
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()

View File

@ -291,14 +291,44 @@ class Bills extends Controller
*/
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) {
$data = $row->toArray();
$data['company_id'] = session('company_id');
if (!class_exists($class)) {
return;
}
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)]);
@ -490,6 +520,35 @@ class Bills extends Controller
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.
*

View File

@ -133,14 +133,20 @@ class Payments extends Controller
*/
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) {
$data = $row->toArray();
$data['company_id'] = session('company_id');
// Loop through all rows
$sheet->each(function ($row) {
$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)]);
@ -231,4 +237,20 @@ class Payments extends Controller
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)
{
$rows = $import->all();
foreach ($rows as $row) {
$data = $row->toArray();
if (empty($data['email'])) {
$data['email'] = '';
// Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'vendors') {
return;
}
$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)]);
@ -265,6 +271,22 @@ class Vendors extends Controller
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()
{
$vendor_id = request('vendor_id');

View File

@ -191,19 +191,25 @@ class Customers extends Controller
*/
public function import(ImportFile $import)
{
$rows = $import->all();
foreach ($rows as $row) {
$data = $row->toArray();
if (empty($data['email'])) {
$data['email'] = '';
// Loop through all sheets
$import->each(function ($sheet) {
if ($sheet->getTitle() != 'customers') {
return;
}
$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)]);
@ -301,6 +307,22 @@ class Customers extends Controller
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()
{
$customer_id = request('customer_id');

View File

@ -312,14 +312,44 @@ class Invoices extends Controller
*/
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) {
$data = $row->toArray();
$data['company_id'] = session('company_id');
if (!class_exists($class)) {
return;
}
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)]);
@ -511,6 +541,35 @@ class Invoices extends Controller
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.
*

View File

@ -135,14 +135,20 @@ class Revenues extends Controller
*/
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) {
$data = $row->toArray();
$data['company_id'] = session('company_id');
// Loop through all rows
$sheet->each(function ($row) {
$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)]);
@ -233,4 +239,20 @@ class Revenues extends Controller
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.
|
*/
'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',
'partially' => 'Partially',
'partially_paid' => 'Partially Paid',
'export' => 'Export',
'title' => [
'new' => 'New :type',

View File

@ -4,6 +4,6 @@ return [
'import' => 'Import',
'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="col-md-12">
<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 class="form-group col-md-12 required {{ $errors->has('import') ? 'has-error' : '' }}" style="min-height: 59px">

View File

@ -5,7 +5,7 @@
@section('content')
<!-- Default box -->
<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">
{{ Form::textGroup('name', trans('general.name'), 'id-card-o') }}

View File

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

View File

@ -2,18 +2,19 @@
@section('title', trans_choice('general.items', 2))
@permission('create-common-items')
@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>
<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>
@endsection
@permission('create-common-items')
<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>
<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
<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')
<!-- Default box -->
<div class="box box-success">
<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">
<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')]) !!}
@ -47,7 +48,7 @@
@foreach($items as $item)
<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><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->quantity }}</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>
</button>
<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>
@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>
@endpermission
@permission('delete-common-items')

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.bills', 2))
@permission('create-expenses-bills')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.payments', 2))
@permission('create-expenses-payments')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.vendors', 2))
@permission('create-expenses-vendors')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.customers', 2))
@permission('create-incomes-customers')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.invoices', 2))
@permission('create-incomes-invoices')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -2,12 +2,13 @@
@section('title', trans_choice('general.revenues', 2))
@permission('create-incomes-revenues')
@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><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>
@endsection
<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>
@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')
<!-- Default box -->

View File

@ -15,16 +15,17 @@ Route::group(['middleware' => 'language'], 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::get('dashboard/cashflow', 'Common\Dashboard@cashFlow');
Route::get('import/{group}/{type}', 'Common\Import@create');
Route::get('items/autocomplete', 'Common\Items@autocomplete');
Route::post('items/totalItem', 'Common\Items@totalItem');
Route::get('items/{item}/duplicate', 'Common\Items@duplicate');
Route::post('items/import', 'Common\Items@import');
Route::get('dashboard/cashflow', 'Common\Dashboard@cashFlow')->name('dashboard.cashflow');
Route::get('import/{group}/{type}', 'Common\Import@create')->name('import.create');
Route::get('items/autocomplete', 'Common\Items@autocomplete')->name('items.autocomplete');
Route::post('items/totalItem', 'Common\Items@totalItem')->name('items.total');
Route::get('items/{item}/duplicate', 'Common\Items@duplicate')->name('items.duplicate');
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::get('search/search', 'Common\Search@search');
Route::get('search/search', 'Common\Search@search')->name('search.search');
Route::resource('search', 'Common\Search');
});
@ -48,16 +49,19 @@ Route::group(['middleware' => 'language'], function () {
Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate');
Route::post('invoices/payment', 'Incomes\Invoices@payment');
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::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::get('customers/currency', 'Incomes\Customers@currency');
Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate');
Route::post('customers/customer', 'Incomes\Customers@customer');
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');
});
@ -68,15 +72,18 @@ Route::group(['middleware' => 'language'], function () {
Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate');
Route::post('bills/payment', 'Expenses\Bills@payment');
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::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::get('vendors/currency', 'Expenses\Vendors@currency');
Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate');
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');
});
@ -134,6 +141,9 @@ Route::group(['middleware' => 'language'], function () {
Route::get('updates/post/{alias}/{old}/{new}', 'Install\Updates@post');
Route::resource('updates', 'Install\Updates');
});
/* @deprecated */
Route::post('items/items/totalItem', 'Common\Items@totalItem');
});
Route::group(['middleware' => ['customermenu', 'permission:read-customer-panel']], function () {