diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 378b1695f..60771b7f6 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -188,7 +188,11 @@ return [ 'name' => 'Name', 'code' => 'Code', 'description' => 'Description', - 'select-taxrates' => 'Select Tax Rates' + 'select-taxrates' => 'Select Tax Rates', + 'edit' => [ + 'title' => 'Edit Tax Rule', + 'edit-button-title' => 'Edit Rule' + ] ], 'taxrate' => [ 'title' => 'Add Tax Rate', diff --git a/packages/Webkul/Admin/src/Resources/views/tax/taxrule/create/create.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/taxrule/create/create.blade.php index 5c14db91a..5b44da360 100644 --- a/packages/Webkul/Admin/src/Resources/views/tax/taxrule/create/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/taxrule/create/create.blade.php @@ -70,7 +70,7 @@ diff --git a/packages/Webkul/Admin/src/Resources/views/tax/taxrule/edit/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/tax/taxrule/edit/edit.blade.php index f2f64a467..f062ee886 100644 --- a/packages/Webkul/Admin/src/Resources/views/tax/taxrule/edit/edit.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/tax/taxrule/edit/edit.blade.php @@ -6,16 +6,15 @@ @section('content')
- {{-- {{ dd($data[0][0]) }} --}}
diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index f584b7bbc..fbeedbd8e 100644 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -186,6 +186,12 @@ class Core return TaxCategory::findOrFail($id)->tax_rates; } + /** + * To fetch all + * tax rates. + * + * @return Collection + */ public function getAllTaxRates() { return TaxRate::all(); } diff --git a/packages/Webkul/Core/src/Http/Controllers/TaxCategoryController.php b/packages/Webkul/Core/src/Http/Controllers/TaxCategoryController.php index 16e6f924f..e94aab612 100644 --- a/packages/Webkul/Core/src/Http/Controllers/TaxCategoryController.php +++ b/packages/Webkul/Core/src/Http/Controllers/TaxCategoryController.php @@ -90,19 +90,7 @@ class TaxCategoryController extends Controller if($currentTaxRule = $this->taxRule->create(request()->input())) { $allTaxRules = $data['taxrates']; - foreach ($allTaxRules as $index => $taxRuleId) { - $taxMap['tax_category_id'] = $currentTaxRule->id; - - $taxMap['tax_rate_id'] = $taxRuleId; - - if ($this->taxMap->create($taxMap)) { - continue; - } else { - return redirect()->action('TaxCategoryController@performRollback',[ - 'taxRuleId' => $taxRuleId - ]); - } - } + $this->taxRule->onlyAttach($currentTaxRule->id, $allTaxRules); session()->flash('success', 'New Tax Rule Created'); @@ -160,24 +148,16 @@ class TaxCategoryController extends Controller $data['description'] = request()->input('description'); if($this->taxRate->update($data, $id)) { - if($this->taxRate->sync(request()->input('taxrates'))) { - session()->flash('success', 'Tax Category is successfully edited.'); - return redirect()->route($this->_config['redirect']); - } else { - session()->flash('error', 'Tax Rates cannot be synced.'); - return redirect()->back(); - } + $this->taxRule->syncAndDetach($id, request()->input('taxrates')); + + session()->flash('success', 'Tax Category is successfully edited.'); + + return redirect()->route($this->_config['redirect']); } else { session()->flash('error', 'Tax Category Cannot be Updated Successfully.'); + return redirect()->back(); } - - // $taxRuleData = $this->taxRule->findOneByField('id', $id); - - // $taxMapData = $this->taxMap->findByField('tax_rule_id', $id); - - - } /** diff --git a/packages/Webkul/Core/src/Models/TaxCategory.php b/packages/Webkul/Core/src/Models/TaxCategory.php index 4f89ccc2f..f26314a4b 100644 --- a/packages/Webkul/Core/src/Models/TaxCategory.php +++ b/packages/Webkul/Core/src/Models/TaxCategory.php @@ -22,6 +22,6 @@ class TaxCategory extends Model //for joining the two way pivot table public function tax_rates() { - return $this->belongsToMany(TaxRate::class, 'tax_categories_tax_rates', 'tax_category_id'); + return $this->belongsToMany(TaxRate::class, 'tax_categories_tax_rates', 'tax_category_id')->withPivot('id'); } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Repositories/TaxCategoriesRepository.php b/packages/Webkul/Core/src/Repositories/TaxCategoriesRepository.php index d658cf82c..a15b21031 100644 --- a/packages/Webkul/Core/src/Repositories/TaxCategoriesRepository.php +++ b/packages/Webkul/Core/src/Repositories/TaxCategoriesRepository.php @@ -37,6 +37,7 @@ class TaxCategoriesRepository extends Repository * @param array $data * @param $id * @param string $attribute + * * @return mixed */ public function update(array $data, $id, $attribute = "id") @@ -47,4 +48,35 @@ class TaxCategoriesRepository extends Repository return $taxmap; } + + /** + * Method to attach + * associations + * + * @return mixed + */ + public function onlyAttach($id, $taxRates) { + + foreach($taxRates as $key => $value) { + + $this->model->findOrFail($id)->tax_rates()->attach($id, ['tax_category_id' => $id, 'tax_rate_id' => $value]); + } + } + + + /** + * Method to detach + * and attach the + * associations + * + * @return mixed + */ + public function syncAndDetach($id, $taxRates) { + $this->model->findOrFail($id)->tax_rates()->detach(); + + foreach($taxRates as $key => $value) { + $this->model->findOrFail($id)->tax_rates()->attach($id, ['tax_category_id' => $id, 'tax_rate_id' => $value]); + } + } + } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Models/Product.php b/packages/Webkul/Product/src/Models/Product.php index e8c9a6275..3835c8dbe 100644 --- a/packages/Webkul/Product/src/Models/Product.php +++ b/packages/Webkul/Product/src/Models/Product.php @@ -121,7 +121,7 @@ class Product extends Model { return $this->belongsToMany(self::class, 'product_cross_sells'); } - + /** * @param string $key * diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index d5ef91180..4bf0917f8 100644 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -46,7 +46,7 @@ Route::group(['middleware' => ['web']], function () { Route::view('/product', 'shop::store.product.details.home.index')->name('customer.product'); - Route::view('/product/{slug}/review', 'shop::store.product.review.index')->name('customer.product.review'); + Route::view('/product/review', 'shop::store.product.review.index')->name('customer.product.review'); //customer account Route::prefix('account')->group(function () {