From 3d68496145d1832f16b404edae262122715b9d12 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Mon, 11 Jun 2018 03:47:32 +0300 Subject: [PATCH] added export and improved import --- app/Http/Controllers/Common/Items.php | 46 +++++++++--- app/Http/Controllers/Expenses/Bills.php | 71 ++++++++++++++++-- app/Http/Controllers/Expenses/Payments.php | 34 +++++++-- app/Http/Controllers/Expenses/Vendors.php | 42 ++++++++--- app/Http/Controllers/Incomes/Customers.php | 42 ++++++++--- app/Http/Controllers/Incomes/Invoices.php | 71 ++++++++++++++++-- app/Http/Controllers/Incomes/Revenues.php | 34 +++++++-- config/excel.php | 2 +- public/files/import/bills.csv | 2 - public/files/import/bills.xlsx | Bin 0 -> 13361 bytes public/files/import/customers.csv | 2 - public/files/import/customers.xlsx | Bin 0 -> 9136 bytes public/files/import/invoices.csv | 2 - public/files/import/invoices.xlsx | Bin 0 -> 13370 bytes public/files/import/items.csv | 2 - public/files/import/items.xlsx | Bin 0 -> 9104 bytes public/files/import/payments.csv | 2 - public/files/import/payments.xlsx | Bin 0 -> 9179 bytes public/files/import/revenues.csv | 2 - public/files/import/revenues.xlsx | Bin 0 -> 9191 bytes public/files/import/vendors.csv | 2 - public/files/import/vendors.xlsx | Bin 0 -> 9120 bytes resources/lang/en-GB/general.php | 1 + resources/lang/en-GB/import.php | 2 +- .../views/common/import/create.blade.php | 2 +- resources/views/common/items/create.blade.php | 2 +- resources/views/common/items/edit.blade.php | 2 +- resources/views/common/items/index.blade.php | 17 +++-- .../views/expenses/bills/index.blade.php | 7 +- .../views/expenses/payments/index.blade.php | 7 +- .../views/expenses/vendors/index.blade.php | 7 +- .../views/incomes/customers/index.blade.php | 7 +- .../views/incomes/invoices/index.blade.php | 7 +- .../views/incomes/revenues/index.blade.php | 7 +- routes/web.php | 38 ++++++---- 35 files changed, 347 insertions(+), 115 deletions(-) delete mode 100644 public/files/import/bills.csv create mode 100644 public/files/import/bills.xlsx delete mode 100644 public/files/import/customers.csv create mode 100644 public/files/import/customers.xlsx delete mode 100644 public/files/import/invoices.csv create mode 100644 public/files/import/invoices.xlsx delete mode 100644 public/files/import/items.csv create mode 100644 public/files/import/items.xlsx delete mode 100644 public/files/import/payments.csv create mode 100644 public/files/import/payments.xlsx delete mode 100644 public/files/import/revenues.csv create mode 100644 public/files/import/revenues.xlsx delete mode 100644 public/files/import/vendors.csv create mode 100644 public/files/import/vendors.xlsx diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index 91aa23208..887691a0d 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -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() diff --git a/app/Http/Controllers/Expenses/Bills.php b/app/Http/Controllers/Expenses/Bills.php index ea06957ba..576b61a59 100644 --- a/app/Http/Controllers/Expenses/Bills.php +++ b/app/Http/Controllers/Expenses/Bills.php @@ -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. * diff --git a/app/Http/Controllers/Expenses/Payments.php b/app/Http/Controllers/Expenses/Payments.php index 25fc05f3a..4e64ed7c3 100644 --- a/app/Http/Controllers/Expenses/Payments.php +++ b/app/Http/Controllers/Expenses/Payments.php @@ -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'); + } } diff --git a/app/Http/Controllers/Expenses/Vendors.php b/app/Http/Controllers/Expenses/Vendors.php index 2a5046831..e870fa396 100644 --- a/app/Http/Controllers/Expenses/Vendors.php +++ b/app/Http/Controllers/Expenses/Vendors.php @@ -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'); diff --git a/app/Http/Controllers/Incomes/Customers.php b/app/Http/Controllers/Incomes/Customers.php index e187f2763..c49fb46d9 100644 --- a/app/Http/Controllers/Incomes/Customers.php +++ b/app/Http/Controllers/Incomes/Customers.php @@ -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'); diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php index 39eb2dc9c..405fa703b 100644 --- a/app/Http/Controllers/Incomes/Invoices.php +++ b/app/Http/Controllers/Incomes/Invoices.php @@ -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. * diff --git a/app/Http/Controllers/Incomes/Revenues.php b/app/Http/Controllers/Incomes/Revenues.php index 1ca3080f9..093ac327e 100644 --- a/app/Http/Controllers/Incomes/Revenues.php +++ b/app/Http/Controllers/Incomes/Revenues.php @@ -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'); + } } diff --git a/config/excel.php b/config/excel.php index 3e682141b..d7bc5b549 100644 --- a/config/excel.php +++ b/config/excel.php @@ -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, /* |-------------------------------------------------------------------------- diff --git a/public/files/import/bills.csv b/public/files/import/bills.csv deleted file mode 100644 index 0c7b77ffa..000000000 --- a/public/files/import/bills.csv +++ /dev/null @@ -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" diff --git a/public/files/import/bills.xlsx b/public/files/import/bills.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6338606658b76cda7f77f8d0f5935fd916fa37ba GIT binary patch literal 13361 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 I^i%Ku0XfWZ{r~^~ literal 0 HcmV?d00001 diff --git a/public/files/import/items.csv b/public/files/import/items.csv deleted file mode 100644 index fce9bd71d..000000000 --- a/public/files/import/items.csv +++ /dev/null @@ -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" diff --git a/public/files/import/items.xlsx b/public/files/import/items.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..cc43dcec126ce9acdc724f745c91848a3b664146 GIT binary patch literal 9104 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 M#5*~E(tExC0}tV+mjD0& literal 0 HcmV?d00001 diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index 45e49a617..730280f04 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -100,6 +100,7 @@ return [ 'overdue' => 'Overdue', 'partially' => 'Partially', 'partially_paid' => 'Partially Paid', + 'export' => 'Export', 'title' => [ 'new' => 'New :type', diff --git a/resources/lang/en-GB/import.php b/resources/lang/en-GB/import.php index fe5acbbc0..d4a326edf 100644 --- a/resources/lang/en-GB/import.php +++ b/resources/lang/en-GB/import.php @@ -4,6 +4,6 @@ return [ 'import' => 'Import', 'title' => 'Import :type', - 'message' => 'Allowed file types: CSV, XLS. Please, download the sample file.', + 'message' => 'Allowed file types: XLS, XLSX. Please, download the sample file.', ]; diff --git a/resources/views/common/import/create.blade.php b/resources/views/common/import/create.blade.php index 07cb70c93..77b4df6fe 100644 --- a/resources/views/common/import/create.blade.php +++ b/resources/views/common/import/create.blade.php @@ -9,7 +9,7 @@
- {!! trans('import.message', ['link' => url('public/files/import/' . $type . '.csv')]) !!} + {!! trans('import.message', ['link' => url('public/files/import/' . $type . '.xlsx')]) !!}
diff --git a/resources/views/common/items/create.blade.php b/resources/views/common/items/create.blade.php index 42a238557..c179c22d7 100644 --- a/resources/views/common/items/create.blade.php +++ b/resources/views/common/items/create.blade.php @@ -5,7 +5,7 @@ @section('content')
- {!! Form::open(['url' => 'common/items', 'files' => true, 'role' => 'form']) !!} + {!! Form::open(['route' => 'items.store', 'files' => true, 'role' => 'form']) !!}
{{ Form::textGroup('name', trans('general.name'), 'id-card-o') }} diff --git a/resources/views/common/items/edit.blade.php b/resources/views/common/items/edit.blade.php index eefaf318e..92dcd1930 100644 --- a/resources/views/common/items/edit.blade.php +++ b/resources/views/common/items/edit.blade.php @@ -8,7 +8,7 @@ {!! Form::model($item, [ 'method' => 'PATCH', 'files' => true, - 'url' => ['common/items', $item->id], + 'route' => ['items.update', $item->id], 'role' => 'form' ]) !!} diff --git a/resources/views/common/items/index.blade.php b/resources/views/common/items/index.blade.php index 07242a725..4248fc250 100644 --- a/resources/views/common/items/index.blade.php +++ b/resources/views/common/items/index.blade.php @@ -2,18 +2,19 @@ @section('title', trans_choice('general.items', 2)) -@permission('create-common-items') @section('new_button') -  {{ trans('general.add_new') }} -  {{ trans('import.import') }} -@endsection +@permission('create-common-items') +  {{ trans('general.add_new') }} +  {{ trans('import.import') }} @endpermission +  {{ trans('general.export') }} +@endsection @section('content')
- {!! Form::open(['url' => 'common/items', 'role' => 'form', 'method' => 'GET']) !!} + {!! Form::open(['route' => 'items.index', 'role' => 'form', 'method' => 'GET']) !!}
{!! 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) {{ $item->name }} - {{ $item->name }} + {{ $item->name }} {{ $item->category ? $item->category->name : trans('general.na') }} {{ $item->quantity }} {{ money($item->sale_price, setting('general.default_currency'), true) }} @@ -65,10 +66,10 @@