diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/button.php b/addons/default/visiosoft/advs-module/resources/lang/en/button.php
index c84a77408..ab988e7b0 100644
--- a/addons/default/visiosoft/advs-module/resources/lang/en/button.php
+++ b/addons/default/visiosoft/advs-module/resources/lang/en/button.php
@@ -32,4 +32,5 @@ return [
'name' => 'Update Category'
],
'new_option' => 'New Option',
+ 'export' => 'Export'
];
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvsExport.php b/addons/default/visiosoft/advs-module/src/Adv/AdvsExport.php
new file mode 100644
index 000000000..96bcadd91
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvsExport.php
@@ -0,0 +1,81 @@
+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',
+ ];
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
index 74041899a..ec32d05a9 100644
--- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
+++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
@@ -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();
}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
index e0268b5d5..47032280d 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
@@ -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
Return Back";
echo "
Return Admin Panel";
}
+
+
+ public function exportAdvs(){
+ return Excel::download(new AdvsExport(), 'advs-' . time() . '.xlsx');
+ }
}