Skip to content
This repository was archived by the owner on Jan 9, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "cross-env npm run watch -- --watch-poll --progress",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.18",
"cross-env": "^5.1.4",
"laravel-mix": "^2.1",
"laravel-mix-merge-manifest": "^0.1.1",
"jquery": "^3.2",
"axios": "^1.4.0",
"cross-env": "^7.0.3",
"laravel-mix": "^6.0.49",
"laravel-mix-merge-manifest": "^2.1.0",
"sass": "^1.62.1",
"sass-loader": "^12.6.0",
"vue": "^2.1.10"
},
"dependencies": {}
}
}
57 changes: 34 additions & 23 deletions src/DataGrids/Admin/ProfileDataGrid.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,28 @@

namespace Webkul\Bulkupload\DataGrids\Admin;

use DB;
use Illuminate\Support\Facades\DB;
use Webkul\Ui\DataGrid\DataGrid;

/**
* Profile Datagrid class
*
*/
class ProfileDataGrid extends DataGrid
{
/**
* @var integer
* Index
*
* @var string
*/
protected $index = 'id';

/**
* Prepare the query builder
*
* @return void
*/
public function prepareQueryBuilder()
{
$queryBuilder = DB::table('bulkupload_data_flow_profiles')
->leftJoin('attribute_families', 'bulkupload_data_flow_profiles.attribute_family_id', '=', 'attribute_families.id')
->select('bulkupload_data_flow_profiles.id',
'bulkupload_data_flow_profiles.name as profile_name', 'attribute_families.name', 'bulkupload_data_flow_profiles.locale_code', 'bulkupload_data_flow_profiles.created_at');
->select('bulkupload_data_flow_profiles.id', 'bulkupload_data_flow_profiles.name as profile_name', 'attribute_families.name', 'bulkupload_data_flow_profiles.locale_code', 'bulkupload_data_flow_profiles.created_at');

$this->addFilter('created_at', 'bulkupload_data_flow_profiles.created_at');
$this->addFilter('profile_name', 'bulkupload_data_flow_profiles.name');
Expand All @@ -30,11 +32,16 @@ public function prepareQueryBuilder()
$this->setQueryBuilder($queryBuilder);
}

/**
* Add Column
*
* @return void
*/
public function addColumns()
{
$this->addColumn([
'index' => 'profile_name',
'label' => trans('bulkupload::app.admin.bulk-upload.data-flow-profile.name'),
'label' => __('bulkupload::app.admin.bulk-upload.data-flow-profile.name'),
'type' => 'string',
'searchable' => true,
'sortable' => true,
Expand All @@ -43,7 +50,7 @@ public function addColumns()

$this->addColumn([
'index' => 'name',
'label' => trans('admin::app.catalog.products.familiy'),
'label' => __('admin::app.catalog.products.family'),
'type' => 'string',
'searchable' => true,
'sortable' => true,
Expand All @@ -52,7 +59,7 @@ public function addColumns()

$this->addColumn([
'index' => 'locale_code',
'label' => trans('bulkupload::app.admin.bulk-upload.data-flow-profile.data-grid.locale_code'),
'label' => __('bulkupload::app.admin.bulk-upload.data-flow-profile.data-grid.locale_code'),
'type' => 'string',
'searchable' => true,
'sortable' => true,
Expand All @@ -61,37 +68,41 @@ public function addColumns()

$this->addColumn([
'index' => 'created_at',
'label' => trans('bulkupload::app.admin.bulk-upload.data-flow-profile.data-grid.created-at'),
'label' => __('bulkupload::app.admin.bulk-upload.data-flow-profile.data-grid.created-at'),
'type' => 'datetime',
'sortable' => true,
'searchable' => false,
'filterable' => true
]);
}

/**
* Prepare actions
*
* @return void
*/
public function prepareActions()
{
$this->addAction([
'type' => 'Edit',
'title' => trans('admin::app.datagrid.edit'),
'method' => 'GET',
'route' => 'bulkupload.admin.profile.edit',
'icon' => 'icon pencil-lg-icon',
'title' => ''

]);

$this->addAction([
'type' => trans('admin::app.datagrid.delete'),
'method' => 'POST',
'route' => 'bulkupload.admin.profile.delete',
'confirm_text' => trans('ui::app.datagrid.massaction.delete'),
'icon' => 'icon trash-icon',
'title' => ''
'title' => trans('admin::app.datagrid.delete'),
'method' => 'POST',
'route' => 'bulkupload.admin.profile.delete',
'icon' => 'icon trash-icon',
]);

$this->enableAction = true;
}

/**
* Prepare mass actions
*
* @return void
*/
public function prepareMassActions()
{
$this->addMassAction([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public function up()
*/
public function down()
{
//
Schema::table('bulkupload_data_flow_profiles', function(Blueprint $table) {
$table->dropColumn('locale_code');
});
}
}
122 changes: 45 additions & 77 deletions src/Helpers/ImportProduct.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,10 @@

namespace Webkul\Bulkupload\Helpers;

use Webkul\Bulkupload\Repositories\ImportProductRepository;
use Webkul\Bulkupload\Repositories\DataFlowProfileRepository;
use Webkul\Bulkupload\Repositories\{ImportProductRepository, DataFlowProfileRepository};

class ImportProduct
{
/**
* ImportProductRepository object
*
* @var \Webkul\Bulkupload\Repositories\ImportProductRepository
*
*/
protected $importProductRepository;

/**
* DataFlowProfileRepository object
*
* @var \Webkul\Bulkupload\Repositories\DataFlowProfileRepository
*
*/
protected $dataFlowProfileRepository;

/**
* Create a new controller instance.
*
Expand All @@ -32,14 +15,9 @@ class ImportProduct
* @return void
*/
public function __construct(
ImportProductRepository $importProductRepository,
DataFlowProfileRepository $dataFlowProfileRepository
)
{
$this->importProductRepository = $importProductRepository;

$this->dataFlowProfileRepository = $dataFlowProfileRepository;
}
protected ImportProductRepository $importProductRepository,
protected DataFlowProfileRepository $dataFlowProfileRepository
) {}

/**
* store import products for profile execution
Expand All @@ -48,13 +26,6 @@ public function __construct(
*/
public function store()
{
request()->validate ([
'attribute_family' => 'required',
'file_path' => 'required',
'image_path' => 'mimetypes:application/zip|max:10000',
'data_flow_profile' => 'required',
]);

$valid_extension = ['csv', 'xls', 'xlsx'];
$valid_image_extension = ['zip', 'rar'];

Expand All @@ -63,101 +34,98 @@ public function store()
$linkFilesDir = 'imported-products/admin/link-files';
$linkSampleFilesDir = 'imported-products/admin/link-sample-files';
$sampleFileDir = 'imported-products/admin/sample-file';

$attribute_family_id = request()->attribute_family;
$data_flow_profile_id = request()->data_flow_profile;

$image = request()->file('image_path');
$file = request()->file('file_path');
$linkFiles = request()->file('link_files');
$linkSampleFiles = request()->file('link_sample_files');
$sampleFile = request()->file('sample_file');

if (! isset($image)) {
$image = '';
}

if (request()->is_downloadable) {

if (request()->has('is_downloadable')) {
$product['is_downloadable'] = 1;

if (! empty($linkFiles) && in_array($linkFiles->getClientOriginalExtension(), $valid_image_extension)) {
$uploadedLinkFiles = $linkFiles->storeAs($linkFilesDir, uniqid().'.'.$linkFiles->getClientOriginalExtension());
if (
request()->hasFile('link_files')
&& ! in_array(request()->file('link_files')->getClientOriginalExtension(), $valid_image_extension)
) {
$uploadedLinkFiles = request()->file('link_files')->storeAs($linkFilesDir, uniqid() . '.' . request()->file('link_files')->getClientOriginalExtension());

$product['upload_link_files'] = $uploadedLinkFiles;
} else {
session()->flash('error', trans('bulkupload::app.admin.bulk-upload.messages.file-format-error'));
session()->flash('error', __('bulkupload::app.admin.bulk-upload.messages.file-format-error'));

return redirect()->route('admin.bulk-upload.index');
}

if (request()->is_link_have_sample) {
if (request()->input('is_link_have_sample')) {
$product['is_links_have_samples'] = 1;

if (in_array($linkSampleFiles->getClientOriginalExtension(), $valid_image_extension)) {
$uploadedLinkSampleFiles = $linkSampleFiles->storeAs($linkSampleFilesDir, uniqid().'.'.$linkSampleFiles->getClientOriginalExtension());
if (in_array(request()->file('link_sample_files')->getClientOriginalExtension(), $valid_image_extension)) {
$uploadedLinkSampleFiles = request()->file('link_sample_files')->storeAs($linkSampleFilesDir, uniqid().'.'.request()->file('link_sample_files')->getClientOriginalExtension());

$product['upload_link_sample_files'] = $uploadedLinkSampleFiles;
} else {
session()->flash('error', trans('bulkupload::app.admin.bulk-upload.messages.file-format-error'));
session()->flash('error', __('bulkupload::app.admin.bulk-upload.messages.file-format-error'));

return redirect()->route('admin.bulk-upload.index');
}
}

if (request()->is_sample) {
if (request()->input('is_sample')) {
$product['is_samples_available'] = 1;

if (in_array($sampleFile->getClientOriginalExtension(), $valid_image_extension)) {
$uploadedSampleFiles = $sampleFile->storeAs($sampleFileDir, uniqid().'.'.$sampleFile->getClientOriginalExtension());
if (in_array(request()->file('sample_file')->getClientOriginalExtension(), $valid_image_extension)) {
$uploadedSampleFiles = request()->file('sample_file')->storeAs($sampleFileDir, uniqid().'.'.request()->file('sample_file')->getClientOriginalExtension());

$product['upload_sample_files'] = $uploadedSampleFiles;
} else {
session()->flash('error', trans('bulkupload::app.admin.bulk-upload.messages.file-format-error'));
session()->flash('error', __('bulkupload::app.admin.bulk-upload.messages.file-format-error'));

return redirect()->route('admin.bulk-upload.index');
}
}
}

$product['data_flow_profile_id'] = $data_flow_profile_id;
$product['attribute_family_id'] = $attribute_family_id;
$product['data_flow_profile_id'] = request()->input('data_flow_profile');
$product['attribute_family_id'] = request()->input('attribute_family');

if ((! empty($image) && in_array($image->getClientOriginalExtension(), $valid_image_extension)) && (in_array($file->getClientOriginalExtension(), $valid_extension))) {
$uploadedImage = $image->storeAs($imageDir, uniqid().'.'.$image->getClientOriginalExtension());
if (
request()->hasFile('image_path')
&& in_array(request()->file('image_path')->getClientOriginalExtension(), $valid_image_extension)
&& in_array(request()->file('file_path')->getClientOriginalExtension(), $valid_extension)
) {
$uploadedImage = request()->file('image_path')->storeAs($imageDir, uniqid().'.'.request()->file('image_path')->getClientOriginalExtension());

$product['image_path'] = $uploadedImage;

$uploadedFile = $file->storeAs($fileDir, uniqid().'.'.$file->getClientOriginalExtension());
$uploadedFile = request()->file('file_path')->storeAs($fileDir, uniqid() . '.' . request()->file('file_path')->getClientOriginalExtension());

$product['file_path'] = $uploadedFile;
} else if ( empty($image) && (in_array($file->getClientOriginalExtension(), $valid_extension))) {
} elseif (
! request()->hasFile('image_path')
&& in_array(request()->file('file_path')->getClientOriginalExtension(), $valid_extension)
) {
$product['image_path'] = '';

$uploadedFile = $file->storeAs($fileDir, uniqid().'.'.$file->getClientOriginalExtension());
$uploadedFile = request()->file('file_path')->storeAs($fileDir, uniqid() . '.' . request()->file('file_path')->getClientOriginalExtension());

$product['file_path'] = $uploadedFile;
} else {
session()->flash('error', trans('bulkupload::app.admin.bulk-upload.messages.file-format-error'));
session()->flash('error', __('bulkupload::app.admin.bulk-upload.messages.file-format-error'));

return redirect()->route('admin.bulk-upload.index');
}

$data = $this->importProductRepository->findOneByField('data_flow_profile_id', $data_flow_profile_id);
$importedProduct = $this->importProductRepository->findOneByField('data_flow_profile_id', request()->input('data_flow_profile'));

if ($data) {
$this->dataFlowProfileRepository->update(['run_status' => '0'], $data_flow_profile_id);
if ($importedProduct) {
$this->dataFlowProfileRepository->update(['run_status' => '0'], request()->input('data_flow_profile'));

$this->importProductRepository->Update($product, $data->id);
$this->importProductRepository->update($product, $importedProduct->id);

session()->flash('success',trans('bulkupload::app.admin.bulk-upload.messages.update-profile'));
session()->flash('success', __('bulkupload::app.admin.bulk-upload.messages.update-profile'));

return redirect()->route('admin.bulk-upload.index');
} else {
$importNewProductsStore = $this->importProductRepository->create($product);
}

session()->flash('success',trans('bulkupload::app.admin.bulk-upload.messages.profile-saved'));
$this->importProductRepository->create($product);

return redirect()->route('admin.bulk-upload.index');
}
session()->flash('success', __('bulkupload::app.admin.bulk-upload.messages.profile-saved'));

return redirect()->route('admin.bulk-upload.index');
}
}
Loading