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'); } }