diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php
index 4f0e2ac29..bc078db9b 100755
--- a/packages/Webkul/Admin/src/Resources/lang/de/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php
@@ -2,6 +2,7 @@
return array (
'save' => 'Speichern',
+ 'copy-of' => 'Kopie von',
'create' => 'Erstellen',
'update' => 'Update',
'delete' => 'Löschen',
diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php
index c4df3857c..64c96b06f 100755
--- a/packages/Webkul/Admin/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php
@@ -2,6 +2,7 @@
return [
'save' => 'Save',
+ 'copy-of' => 'Copy of',
'create' => 'Create',
'update' => 'Update',
'delete' => 'Delete',
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
index a52168b11..7626ffdd2 100755
--- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
@@ -309,7 +309,7 @@
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
-
+
@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}
|
@@ -383,10 +383,10 @@
addOptionRow: function (isNullOptionRow) {
const rowCount = this.optionRowCount++;
const id = 'option_' + rowCount;
- let row = {'id': id};
+ let row = {'id': id, 'locales': {}};
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
- row['{{ $locale->code }}'] = '';
+ row['locales']['{{ $locale->code }}'] = '';
@endforeach
row['notRequired'] = '';
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php
index 941d9a714..5a4a4f707 100755
--- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php
@@ -379,7 +379,7 @@
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
-
+
@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}
|
@@ -434,7 +434,8 @@
'sort_order': @json($option->sort_order),
'swatch_value': @json($option->swatch_value),
'swatch_value_url': @json($option->swatch_value_url),
- 'notRequired': ''
+ 'notRequired': '',
+ 'locales': {}
};
@if (empty($option->label))
@@ -444,7 +445,7 @@
@endif
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
- row['{{ $locale->code }}'] = @json($option->translate($locale->code)['label'] ?? '');
+ row['locales']['{{ $locale->code }}'] = @json($option->translate($locale->code)['label'] ?? '');
@endforeach
this.optionRows.push(row);
@@ -465,10 +466,10 @@
addOptionRow: function (isNullOptionRow) {
const rowCount = this.optionRowCount++;
const id = 'option_' + rowCount;
- let row = {'id': id};
+ let row = {'id': id, 'locales': {}};
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
- row['{{ $locale->code }}'] = '';
+ row['locales']['{{ $locale->code }}'] = '';
@endforeach
row['notRequired'] = '';
diff --git a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php
index 79615501e..efc134cab 100644
--- a/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/cms/create.blade.php
@@ -118,10 +118,10 @@
height: 200,
width: "100%",
plugins: 'image imagetools media wordcount save fullscreen code table lists link hr',
- toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor alignleft aligncenter alignright alignjustif| link hr |numlist bullist outdent indent | removeformat | code | table',
+ toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor alignleft aligncenter alignright alignjustify | link hr |numlist bullist outdent indent | removeformat | code | table',
image_advtab: true,
valid_elements : '*[*]'
});
});
-@endpush
\ No newline at end of file
+@endpush
diff --git a/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php b/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php
index daaeeb0e9..e0cbf68e9 100644
--- a/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php
+++ b/packages/Webkul/CartRule/src/Http/Controllers/CartRuleController.php
@@ -85,10 +85,21 @@ class CartRuleController extends Controller
$copiedCartRule = $originalCartRule
->replicate()
- ->fill(['status' => 0]);
+ ->fill([
+ 'status' => 0,
+ 'name' => __('admin::app.copy-of') . ' ' . $originalCartRule->name,
+ ]);
$copiedCartRule->save();
+ foreach ($copiedCartRule->channels as $channel) {
+ $copiedCartRule->channels()->save($channel);
+ }
+
+ foreach ($copiedCartRule->customer_groups as $group) {
+ $copiedCartRule->customer_groups()->save($group);
+ }
+
return view($this->_config['view'], [
'cartRule' => $copiedCartRule,
]);
diff --git a/packages/Webkul/Product/src/Database/Migrations/2020_05_21_171500_create_product_customer_group_prices_table.php b/packages/Webkul/Product/src/Database/Migrations/2020_05_21_171500_create_product_customer_group_prices_table.php
index 90127df89..5c9271f78 100644
--- a/packages/Webkul/Product/src/Database/Migrations/2020_05_21_171500_create_product_customer_group_prices_table.php
+++ b/packages/Webkul/Product/src/Database/Migrations/2020_05_21_171500_create_product_customer_group_prices_table.php
@@ -22,7 +22,7 @@ class CreateProductCustomerGroupPricesTable extends Migration
$table->integer('product_id')->unsigned();
$table->foreign('product_id')->references('id')->on('products')->onDelete('cascade');
- $table->integer('customer_group_id')->nullble()->unsigned();
+ $table->integer('customer_group_id')->unsigned()->nullable();
$table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('cascade');
$table->timestamps();
});
diff --git a/packages/Webkul/Product/src/Repositories/SearchRepository.php b/packages/Webkul/Product/src/Repositories/SearchRepository.php
index 80a25dfe7..0f9ea2921 100755
--- a/packages/Webkul/Product/src/Repositories/SearchRepository.php
+++ b/packages/Webkul/Product/src/Repositories/SearchRepository.php
@@ -18,14 +18,15 @@ class SearchRepository extends Repository
/**
* Create a new repository instance.
*
- * @param Webkul\Product\Repositories\ProductRepository $productRepository
+ * @param \Webkul\Product\Repositories\ProductRepository $productRepository
+ * @param \Illuminate\Container\Container $app
+ *
* @return void
*/
public function __construct(
ProductRepository $productRepository,
App $app
- )
- {
+ ) {
parent::__construct($app);
$this->productRepository = $productRepository;
@@ -38,8 +39,6 @@ class SearchRepository extends Repository
public function search($data)
{
- $products = $this->productRepository->searchProductByAttribute($data['term']);
-
- return $products;
+ return $this->productRepository->searchProductByAttribute($data['term'] ?? '');
}
}
\ No newline at end of file
diff --git a/packages/Webkul/Product/src/Type/AbstractType.php b/packages/Webkul/Product/src/Type/AbstractType.php
index 6707df257..df3e84172 100644
--- a/packages/Webkul/Product/src/Type/AbstractType.php
+++ b/packages/Webkul/Product/src/Type/AbstractType.php
@@ -605,8 +605,8 @@ abstract class AbstractType
}
if ($price->value < $lastPrice) {
- if ($price->value_type == 'percentage') {
- $lastPrice = $product->price * ($price->value / 100);
+ if ($price->value_type == 'discount') {
+ $lastPrice = $product->price - ($product->price * $price->value) / 100;
} else {
$lastPrice = $price->value;
}
diff --git a/packages/Webkul/Product/src/Type/Bundle.php b/packages/Webkul/Product/src/Type/Bundle.php
index 50ba8a075..3d2d78600 100644
--- a/packages/Webkul/Product/src/Type/Bundle.php
+++ b/packages/Webkul/Product/src/Type/Bundle.php
@@ -93,7 +93,7 @@ class Bundle extends AbstractType
ProductRepository $productRepository,
ProductAttributeValueRepository $attributeValueRepository,
ProductInventoryRepository $productInventoryRepository,
- productImageRepository $productImageRepository,
+ ProductImageRepository $productImageRepository,
ProductBundleOptionRepository $productBundleOptionRepository,
ProductBundleOptionProductRepository $productBundleOptionProductRepository,
ProductImage $productImageHelper,
diff --git a/packages/Webkul/Velocity/src/Repositories/Product/ProductRepository.php b/packages/Webkul/Velocity/src/Repositories/Product/ProductRepository.php
index 4a97216e7..581b9bbdb 100644
--- a/packages/Webkul/Velocity/src/Repositories/Product/ProductRepository.php
+++ b/packages/Webkul/Velocity/src/Repositories/Product/ProductRepository.php
@@ -105,7 +105,7 @@ class ProductRepository extends Repository
*/
public function searchProductsFromCategory($params)
{
- $term = $params['term'];
+ $term = $params['term'] ?? '';
$categoryId = $params['category'];
$results = app(ProductFlatRepository::class)->scopeQuery(function($query) use($term, $categoryId, $params) {
diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php
index acd38100a..238eee330 100644
--- a/resources/views/errors/503.blade.php
+++ b/resources/views/errors/503.blade.php
@@ -2,4 +2,4 @@
@section('title', __('Service Unavailable'))
@section('code', '503')
-@section('message', __($exception->getMessage() ?: 'Service Unavailable'))
+@section('message', __($exception->getMessage() ?: 'Srvice Unavailable'))
diff --git a/tests/functional/CartRule/CartRuleCopyCest.php b/tests/functional/CartRule/CartRuleCopyCest.php
index 5b0a08301..7b6c5281d 100644
--- a/tests/functional/CartRule/CartRuleCopyCest.php
+++ b/tests/functional/CartRule/CartRuleCopyCest.php
@@ -3,6 +3,7 @@
namespace Tests\Functional\CartRule;
use FunctionalTester;
+use Illuminate\Support\Facades\DB;
use Webkul\CartRule\Models\CartRule;
class CartRuleCopyCest
@@ -16,19 +17,44 @@ class CartRuleCopyCest
'status' => 1,
]);
- $count = count(cartRule::all());
+ DB::table('cart_rule_channels')->insert([
+ 'cart_rule_id' => $original->id,
+ 'channel_id' => 1,
+ ]);
+
+ DB::table('cart_rule_customer_groups')->insert([
+ 'cart_rule_id' => $original->id,
+ 'customer_group_id' => 1,
+ ]);
+
+ $count = count(CartRule::all());
$I->amOnAdminRoute('admin.cart-rules.copy', ['id' => $original->id]);
$I->seeRecord(CartRule::class, [
'id' => $original->id + 1,
'status' => 0,
- 'name' => $original->name,
+ 'name' => 'Copy of ' . $original->name,
]);
$I->assertCount($count + 1, CartRule::all());
+ $I->assertEquals(
+ DB::table('cart_rule_channels')
+ ->pluck('cart_rule_id', 'channel_id')
+ ->toArray(),
+ [1 => $original->id + 1]
+ );
+
+ $I->assertEquals(
+ DB::table('cart_rule_customer_groups')
+ ->pluck('cart_rule_id', 'customer_group_id')
+ ->toArray(),
+ [1 => $original->id + 1]
+ );
+
$I->seeResponseCodeIsSuccessful();
+ $I->seeCurrentRouteIs('admin.cart-rules.copy');
}
}