mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
#1866 advs excel export
This commit is contained in:
parent
cf17c3c205
commit
7abf0084d7
@ -32,4 +32,5 @@ return [
|
||||
'name' => 'Update Category'
|
||||
],
|
||||
'new_option' => 'New Option',
|
||||
'export' => 'Export'
|
||||
];
|
||||
|
||||
81
addons/default/visiosoft/advs-module/src/Adv/AdvsExport.php
Normal file
81
addons/default/visiosoft/advs-module/src/Adv/AdvsExport.php
Normal file
@ -0,0 +1,81 @@
|
||||
<?php
|
||||
namespace Visiosoft\AdvsModule\Adv;
|
||||
|
||||
use Anomaly\UsersModule\User\UserModel;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Visiosoft\AdvsModule\Adv\AdvModel;
|
||||
use Maatwebsite\Excel\Concerns\FromCollection;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
|
||||
class AdvsExport implements WithMapping, FromCollection, WithHeadings
|
||||
{
|
||||
/**
|
||||
* @return AdvModel[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection
|
||||
*/
|
||||
public function collection()
|
||||
{
|
||||
$adv = new AdvModel();
|
||||
|
||||
$cats = $adv->newQuery()
|
||||
->leftJoin('cats_category', function ($q){
|
||||
$q->on('cats_category.id', 'advs_advs.cat1')
|
||||
->orOn('cats_category.id', 'advs_advs.cat2')
|
||||
->orOn('cats_category.id', 'advs_advs.cat3')
|
||||
->orOn('cats_category.id', 'advs_advs.cat4')
|
||||
->orOn('cats_category.id', 'advs_advs.cat5')
|
||||
->orOn('cats_category.id', 'advs_advs.cat6')
|
||||
->orOn('cats_category.id', 'advs_advs.cat7')
|
||||
->orOn('cats_category.id', 'advs_advs.cat8')
|
||||
->orOn('cats_category.id', 'advs_advs.cat9')
|
||||
->orOn('cats_category.id', 'advs_advs.cat10');
|
||||
})
|
||||
->leftJoin('cats_category_translations', 'cats_category.id', 'cats_category_translations.entry_id')
|
||||
->leftJoin('location_countries_translations','advs_advs.country_id', 'location_countries_translations.entry_id')
|
||||
|
||||
->leftJoin('location_cities_translations','advs_advs.city', 'location_cities_translations.entry_id')
|
||||
|
||||
->leftJoin('location_districts_translations','advs_advs.district', 'location_districts_translations.entry_id')
|
||||
->where('cats_category_translations.locale',Request()->session()->get('_locale', setting_value('streams::default_locale', 'en')))
|
||||
->where('advs_advs_translations.locale',Request()->session()->get('_locale', setting_value('streams::default_locale', 'en')))
|
||||
->select(['advs_advs.*', 'location_countries_translations.name as country', 'location_cities_translations.name as city_name', 'location_districts_translations.name as district', DB::raw("group_concat(default_cats_category_translations.name SEPARATOR ', ') as categories")])
|
||||
->groupBy('advs_advs.id')
|
||||
->get();
|
||||
|
||||
return $cats;
|
||||
}
|
||||
|
||||
public function map($adv): array
|
||||
{
|
||||
return [
|
||||
$adv->id,
|
||||
$adv->name,
|
||||
strip_tags($adv->advs_desc),
|
||||
$adv->currency,
|
||||
$adv->price,
|
||||
$adv->standard_price,
|
||||
$adv->created_by_id,
|
||||
$adv->categories,
|
||||
$adv->country,
|
||||
$adv->city_name,
|
||||
$adv->district,
|
||||
];
|
||||
}
|
||||
|
||||
public function headings(): array
|
||||
{
|
||||
return [
|
||||
'ID',
|
||||
'Name',
|
||||
'Description',
|
||||
'Currency',
|
||||
'Price',
|
||||
'Standard Price',
|
||||
'Created By Id',
|
||||
'Categories',
|
||||
'Country',
|
||||
'City',
|
||||
'District',
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -75,6 +75,10 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
|
||||
],
|
||||
'admin/advs-users/choose/{advId}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@choose',
|
||||
'admin/class/actions/{id}/{type}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@actions',
|
||||
'admin/advs/export' => [
|
||||
'as' => 'advs::exportAdvs',
|
||||
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@exportAdvs',
|
||||
],
|
||||
|
||||
// advsController
|
||||
'advs/list' => [
|
||||
@ -344,22 +348,30 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
|
||||
'general_settings' => [
|
||||
'title' => 'visiosoft.module.advs::button.general_settings',
|
||||
'href' => '/admin/settings/modules/visiosoft.module.advs',
|
||||
'page' => 'anomaly.module.settings'
|
||||
],
|
||||
'theme_settings' => [
|
||||
'title' => 'visiosoft.theme.defaultadmin::section.theme_settings.name',
|
||||
'href' => url('admin/settings/themes/' . setting_value('streams::standard_theme')),
|
||||
'page' => 'anomaly.module.settings'
|
||||
],
|
||||
'assets_clear' => [
|
||||
'title' => 'visiosoft.module.advs::section.assets_clear.name',
|
||||
'href' => route('assets_clear'),
|
||||
'page' => 'anomaly.module.settings'
|
||||
],
|
||||
'export' => [
|
||||
'title' => 'visiosoft.module.advs::button.export',
|
||||
'href' => route('advs::exportAdvs'),
|
||||
'page' => 'visiosoft.module.advs'
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($settings_url as $key => $value) {
|
||||
$addonCollection->get('anomaly.module.settings')->addSection($key, $value);
|
||||
$addonCollection->get($value['page'])->addSection($key, $value);
|
||||
}
|
||||
|
||||
// Disable file versioning
|
||||
// Disable file versioning
|
||||
$fileModel->disableVersioning();
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,8 @@ use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface;
|
||||
use Visiosoft\CatsModule\Category\CategoryModel;
|
||||
use Visiosoft\LocationModule\City\CityModel;
|
||||
use Visiosoft\AlgoliaModule\Search\SearchModel;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
use Visiosoft\AdvsModule\Adv\AdvsExport;
|
||||
|
||||
class AdvsController extends AdminController
|
||||
{
|
||||
@ -341,4 +343,9 @@ class AdvsController extends AdminController
|
||||
<a href='" . $request->server('HTTP_REFERER') . "'><b>Return Back</b></a>";
|
||||
echo "<br><a href='/admin'><b>Return Admin Panel</b></a>";
|
||||
}
|
||||
|
||||
|
||||
public function exportAdvs(){
|
||||
return Excel::download(new AdvsExport(), 'advs-' . time() . '.xlsx');
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user