From c54d803bbf8d768d72071358c39abe90556131d2 Mon Sep 17 00:00:00 2001 From: Herbert Date: Mon, 18 Nov 2019 16:04:45 +0100 Subject: [PATCH 01/17] introduce 'checkout.order.orderitem.save.[before/after]' events --- .../src/Repositories/OrderRepository.php | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 7065ef8bd..18740b1b1 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -3,12 +3,11 @@ namespace Webkul\Sales\Repositories; use Illuminate\Container\Container as App; -use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; -use Webkul\Sales\Contracts\Order; -use Webkul\Sales\Repositories\OrderItemRepository; use Webkul\Core\Models\CoreConfig; +use Webkul\Sales\Contracts\Order; /** * Order Reposotory @@ -35,8 +34,9 @@ class OrderRepository extends Repository /** * Create a new repository instance. * - * @param Webkul\Sales\Repositories\OrderItemRepository $orderItemRepository - * @param Webkul\Sales\Repositories\DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository + * @param Webkul\Sales\Repositories\OrderItemRepository $orderItemRepository + * @param Webkul\Sales\Repositories\DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository + * * @return void */ public function __construct( @@ -65,6 +65,7 @@ class OrderRepository extends Repository /** * @param array $data + * * @return mixed */ public function create(array $data) @@ -101,6 +102,8 @@ class OrderRepository extends Repository $order->addresses()->create($data['billing_address']); foreach ($data['items'] as $item) { + Event::fire('checkout.order.orderitem.save.before', $data); + $orderItem = $this->orderItemRepository->create(array_merge($item, ['order_id' => $order->id])); if (isset($item['children']) && $item['children']) { @@ -112,6 +115,8 @@ class OrderRepository extends Repository $this->orderItemRepository->manageInventory($orderItem); $this->downloadableLinkPurchasedRepository->saveLinks($orderItem, 'available'); + + Event::fire('checkout.order.orderitem.save.after', $data); } Event::fire('checkout.order.save.after', $order); @@ -128,6 +133,7 @@ class OrderRepository extends Repository /** * @param int $orderId + * * @return mixed */ public function cancel($orderId) @@ -152,11 +158,11 @@ class OrderRepository extends Repository } else { $orderItems[] = $item; } - + foreach ($orderItems as $orderItem) { if ($orderItem->product) $this->orderItemRepository->returnQtyToProductInventory($orderItem); - + if ($orderItem->qty_ordered) { $orderItem->qty_canceled += $orderItem->qty_to_cancel; $orderItem->save(); @@ -188,19 +194,21 @@ class OrderRepository extends Repository { $config = new CoreConfig(); - $invoiceNumberPrefix = $config->where('code','=',"sales.orderSettings.order_number.order_number_prefix")->first() - ? $config->where('code','=',"sales.orderSettings.order_number.order_number_prefix")->first()->value : false; - - $invoiceNumberLength = $config->where('code','=',"sales.orderSettings.order_number.order_number_length")->first() - ? $config->where('code','=',"sales.orderSettings.order_number.order_number_length")->first()->value : false; - - $invoiceNumberSuffix = $config->where('code','=',"sales.orderSettings.order_number.order_number_suffix")->first() - ? $config->where('code','=',"sales.orderSettings.order_number.order_number_suffix")->first()->value: false; + foreach ([ + 'Prefix' => 'prefix', + 'Length' => 'length', + 'Suffix' => 'suffix', + ] as $varSuffix => $confKey) { + $var = "invoiceNumber{$varSuffix}"; + $$var = $config + ->where('code', '=', "sales.orderSettings.order_number.{$confKey}") + ->first() ?: false; + } $lastOrder = $this->model->orderBy('id', 'desc')->limit(1)->first(); $lastId = $lastOrder ? $lastOrder->id : 0; - if ($invoiceNumberLength && ( $invoiceNumberPrefix || $invoiceNumberSuffix) ) { + if ($invoiceNumberLength && ($invoiceNumberPrefix || $invoiceNumberSuffix)) { $invoiceNumber = $invoiceNumberPrefix . sprintf("%0{$invoiceNumberLength}d", 0) . ($lastId + 1) . $invoiceNumberSuffix; } else { $invoiceNumber = $lastId + 1; @@ -211,13 +219,14 @@ class OrderRepository extends Repository /** * @param mixed $order + * * @return void */ public function isInCompletedState($order) { $totalQtyOrdered = $totalQtyInvoiced = $totalQtyShipped = $totalQtyRefunded = $totalQtyCanceled = 0; - foreach ($order->items()->get() as $item) { + foreach ($order->items()->get() as $item) { $totalQtyOrdered += $item->qty_ordered; $totalQtyInvoiced += $item->qty_invoiced; @@ -241,6 +250,7 @@ class OrderRepository extends Repository /** * @param mixed $order + * * @return void */ public function isInCanceledState($order) @@ -257,13 +267,14 @@ class OrderRepository extends Repository /** * @param mixed $order + * * @return void */ public function isInClosedState($order) { $totalQtyOrdered = $totalQtyRefunded = $totalQtyCanceled = 0; - foreach ($order->items()->get() as $item) { + foreach ($order->items()->get() as $item) { $totalQtyOrdered += $item->qty_ordered; $totalQtyRefunded += $item->qty_refunded; $totalQtyCanceled += $item->qty_canceled; @@ -274,6 +285,7 @@ class OrderRepository extends Repository /** * @param mixed $order + * * @return void */ public function updateOrderStatus($order) @@ -294,6 +306,7 @@ class OrderRepository extends Repository /** * @param mixed $order + * * @return mixed */ public function collectTotals($order) From 12dd5a4909f9d2ea947b28c43c545d3213d52264 Mon Sep 17 00:00:00 2001 From: Herbert Date: Thu, 21 Nov 2019 13:42:32 +0100 Subject: [PATCH 02/17] adjusted OrderRepository incrementId and added tiny unit test --- .../src/Repositories/OrderRepository.php | 17 +++++---- .../tests/sales/order/OrderRepositoryCest.php | 37 +++++++++++++++++++ 2 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 18740b1b1..82420e34e 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -8,9 +8,10 @@ use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; use Webkul\Core\Models\CoreConfig; use Webkul\Sales\Contracts\Order; +use Webkul\Sales\Models\Order as OrderModel; /** - * Order Reposotory + * Order Repository * * @author Jitendra Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) @@ -58,7 +59,7 @@ class OrderRepository extends Repository * @return Mixed */ - function model() + public function model() { return Order::class; } @@ -140,13 +141,13 @@ class OrderRepository extends Repository { $order = $this->findOrFail($orderId); - if (! $order->canCancel()) + if (!$order->canCancel()) return false; Event::fire('sales.order.cancel.before', $order); foreach ($order->items as $item) { - if (! $item->qty_to_cancel) + if (!$item->qty_to_cancel) continue; $orderItems = []; @@ -190,7 +191,7 @@ class OrderRepository extends Repository /** * @return integer */ - public function generateIncrementId() + public function generateIncrementId(): int { $config = new CoreConfig(); @@ -201,11 +202,11 @@ class OrderRepository extends Repository ] as $varSuffix => $confKey) { $var = "invoiceNumber{$varSuffix}"; $$var = $config - ->where('code', '=', "sales.orderSettings.order_number.{$confKey}") + ->where('code', '=', "sales.orderSettings.order_number.order_number_{$confKey}") ->first() ?: false; } - $lastOrder = $this->model->orderBy('id', 'desc')->limit(1)->first(); + $lastOrder = $this->order->orderBy('id', 'desc')->limit(1)->first(); $lastId = $lastOrder ? $lastOrder->id : 0; if ($invoiceNumberLength && ($invoiceNumberPrefix || $invoiceNumberSuffix)) { @@ -230,7 +231,7 @@ class OrderRepository extends Repository $totalQtyOrdered += $item->qty_ordered; $totalQtyInvoiced += $item->qty_invoiced; - if (! $item->isStockable()) { + if (!$item->isStockable()) { $totalQtyShipped += $item->qty_ordered; } else { $totalQtyShipped += $item->qty_shipped; diff --git a/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php new file mode 100644 index 000000000..96520ffef --- /dev/null +++ b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php @@ -0,0 +1,37 @@ +repository = Mockery::mock(OrderRepository::class); + $this->repository + ->shouldReceive('generateIncrementId') + ->andSet('order', new Order); + } + + public function testGenerateIncrementIdOnEmptyDatabase(UnitTester $I) + { + $result = $this->repository->generateIncrementId(); + + $I->expect(1, $result); + } + + public function testGenerateIncrementIdOnFilledDatabase(UnitTester $I) + { + $order = new Order(['id' => rand(666, 1337)]); + $order->save(); + + $result = $this->repository->generateIncrementId(); + + $I->expect($order->id + 1, $result); + } +} From 835e5ce56a99a5c364152d6efb26694c0da31229 Mon Sep 17 00:00:00 2001 From: Herbert Date: Thu, 21 Nov 2019 13:48:34 +0100 Subject: [PATCH 03/17] use (! ... codestyle --- .../Webkul/Sales/src/Repositories/OrderItemRepository.php | 3 ++- packages/Webkul/Sales/src/Repositories/OrderRepository.php | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php b/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php index 39c8bf890..72da2f48d 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderItemRepository.php @@ -3,6 +3,7 @@ namespace Webkul\Sales\Repositories; use Illuminate\Container\Container as App; +use Illuminate\Support\Facades\Event; use Webkul\Core\Eloquent\Repository; use Webkul\Sales\Contracts\OrderItem; @@ -51,7 +52,7 @@ class OrderItemRepository extends Repository $totalInvoiced = $baseTotalInvoiced = 0; $taxInvoiced = $baseTaxInvoiced = 0; - + $totalRefunded = $baseTotalRefunded = 0; $taxRefunded = $baseTaxRefunded = 0; diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 82420e34e..f827cc219 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -141,13 +141,13 @@ class OrderRepository extends Repository { $order = $this->findOrFail($orderId); - if (!$order->canCancel()) + if (! $order->canCancel()) return false; Event::fire('sales.order.cancel.before', $order); foreach ($order->items as $item) { - if (!$item->qty_to_cancel) + if (! $item->qty_to_cancel) continue; $orderItems = []; @@ -231,7 +231,7 @@ class OrderRepository extends Repository $totalQtyOrdered += $item->qty_ordered; $totalQtyInvoiced += $item->qty_invoiced; - if (!$item->isStockable()) { + if (! $item->isStockable()) { $totalQtyShipped += $item->qty_ordered; } else { $totalQtyShipped += $item->qty_shipped; From 64ad1e3cfbdc014e731605f4b7131488b49ec30d Mon Sep 17 00:00:00 2001 From: Herbert Date: Thu, 21 Nov 2019 13:51:08 +0100 Subject: [PATCH 04/17] added .phpcs_cache to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1eea901cd..91f23accb 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ composer.lock yarn.lock package-lock.json yarn.lock +.php_cs.cache From 95684a64a516e8b8568930616b8efd60a0c90a22 Mon Sep 17 00:00:00 2001 From: Herbert Date: Thu, 21 Nov 2019 13:51:17 +0100 Subject: [PATCH 05/17] s/order/model --- packages/Webkul/Sales/src/Repositories/OrderRepository.php | 2 +- .../Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index f827cc219..aed17581d 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -206,7 +206,7 @@ class OrderRepository extends Repository ->first() ?: false; } - $lastOrder = $this->order->orderBy('id', 'desc')->limit(1)->first(); + $lastOrder = $this->model->orderBy('id', 'desc')->limit(1)->first(); $lastId = $lastOrder ? $lastOrder->id : 0; if ($invoiceNumberLength && ($invoiceNumberPrefix || $invoiceNumberSuffix)) { diff --git a/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php index 96520ffef..3934f471e 100644 --- a/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php +++ b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php @@ -15,7 +15,7 @@ class OrderRepositoryCest $this->repository = Mockery::mock(OrderRepository::class); $this->repository ->shouldReceive('generateIncrementId') - ->andSet('order', new Order); + ->andSet('model', new Order); } public function testGenerateIncrementIdOnEmptyDatabase(UnitTester $I) From eea69a546fe1afb8291a8c0dfc1856e770dbba6a Mon Sep 17 00:00:00 2001 From: Herbert Date: Thu, 21 Nov 2019 14:47:54 +0100 Subject: [PATCH 06/17] use ReflectionClass for unit test --- .../tests/sales/order/OrderRepositoryCest.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php index 3934f471e..ea2dddbb7 100644 --- a/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php +++ b/packages/Webkul/Sales/src/tests/sales/order/OrderRepositoryCest.php @@ -1,10 +1,7 @@ repository = Mockery::mock(OrderRepository::class); - $this->repository - ->shouldReceive('generateIncrementId') - ->andSet('model', new Order); + // @see https://stackoverflow.com/a/8457580 + $reflection = new ReflectionClass(OrderRepository::class); + + $property = $reflection->getProperty('model'); + $property->setAccessible(true); + + $this->repository = $reflection->newInstanceWithoutConstructor(); + $property->setValue($this->repository, new Order()); } public function testGenerateIncrementIdOnEmptyDatabase(UnitTester $I) { $result = $this->repository->generateIncrementId(); - $I->expect(1, $result); + $I->assertEquals(1, $result); } public function testGenerateIncrementIdOnFilledDatabase(UnitTester $I) @@ -32,6 +33,6 @@ class OrderRepositoryCest $result = $this->repository->generateIncrementId(); - $I->expect($order->id + 1, $result); + $I->assertEquals($order->id + 1, $result); } } From e65ef14ec1af8824ba3cf096096150aff0b1912c Mon Sep 17 00:00:00 2001 From: Herbert Date: Fri, 22 Nov 2019 08:49:22 +0100 Subject: [PATCH 07/17] removed type hint (int) --- .../src/Repositories/OrderRepository.php | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index aed17581d..c5fca17c1 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -44,8 +44,7 @@ class OrderRepository extends Repository OrderItemRepository $orderItemRepository, DownloadableLinkPurchasedRepository $downloadableLinkPurchasedRepository, App $app - ) - { + ) { $this->orderItemRepository = $orderItemRepository; $this->downloadableLinkPurchasedRepository = $downloadableLinkPurchasedRepository; @@ -97,8 +96,9 @@ class OrderRepository extends Repository $order->payment()->create($data['payment']); - if (isset($data['shipping_address'])) + if (isset($data['shipping_address'])) { $order->addresses()->create($data['shipping_address']); + } $order->addresses()->create($data['billing_address']); @@ -141,14 +141,16 @@ class OrderRepository extends Repository { $order = $this->findOrFail($orderId); - if (! $order->canCancel()) + if (! $order->canCancel()) { return false; + } Event::fire('sales.order.cancel.before', $order); foreach ($order->items as $item) { - if (! $item->qty_to_cancel) + if (! $item->qty_to_cancel) { continue; + } $orderItems = []; @@ -161,8 +163,9 @@ class OrderRepository extends Repository } foreach ($orderItems as $orderItem) { - if ($orderItem->product) + if ($orderItem->product) { $this->orderItemRepository->returnQtyToProductInventory($orderItem); + } if ($orderItem->qty_ordered) { $orderItem->qty_canceled += $orderItem->qty_to_cancel; @@ -191,7 +194,7 @@ class OrderRepository extends Repository /** * @return integer */ - public function generateIncrementId(): int + public function generateIncrementId() { $config = new CoreConfig(); @@ -243,8 +246,9 @@ class OrderRepository extends Repository if ($totalQtyOrdered != ($totalQtyRefunded + $totalQtyCanceled) && $totalQtyOrdered == $totalQtyInvoiced + $totalQtyCanceled - && $totalQtyOrdered == $totalQtyShipped + $totalQtyRefunded + $totalQtyCanceled) + && $totalQtyOrdered == $totalQtyShipped + $totalQtyRefunded + $totalQtyCanceled) { return true; + } return false; } @@ -293,13 +297,15 @@ class OrderRepository extends Repository { $status = 'processing'; - if ($this->isInCompletedState($order)) + if ($this->isInCompletedState($order)) { $status = 'completed'; + } - if ($this->isInCanceledState($order)) + if ($this->isInCanceledState($order)) { $status = 'canceled'; - else if ($this->isInClosedState($order)) + } elseif ($this->isInClosedState($order)) { $status = 'closed'; + } $order->status = $status; $order->save(); @@ -366,4 +372,4 @@ class OrderRepository extends Repository return $order; } -} \ No newline at end of file +} From 59d2a77d7d565f9af7a60b640aee370295f426fb Mon Sep 17 00:00:00 2001 From: Herbert Date: Fri, 22 Nov 2019 09:46:38 +0100 Subject: [PATCH 08/17] two more view_render_events in sales order tabs --- .../Admin/src/Resources/views/sales/orders/view.blade.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php index 534bc1bef..c635af49e 100755 --- a/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/orders/view.blade.php @@ -48,6 +48,8 @@
+ {!! view_render_event('sales.order.tabs.before', ['order' => $order]) !!} +
@@ -506,8 +508,10 @@
+ + {!! view_render_event('sales.order.tabs.after', ['order' => $order]) !!}
-@stop \ No newline at end of file +@stop From ebcc66ab59ec4d3c26e6adf73abc36eb8dcd943a Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Mon, 25 Nov 2019 08:02:55 +0100 Subject: [PATCH 09/17] remove alkhachatryan/laravel-web-console --- composer.json | 1 - config/laravelwebconsole.php | 51 ------------------- .../Development/WebConsoleController.php | 24 --------- packages/Webkul/Admin/src/Http/routes.php | 5 +- 4 files changed, 1 insertion(+), 80 deletions(-) delete mode 100644 config/laravelwebconsole.php delete mode 100755 packages/Webkul/Admin/src/Http/Controllers/Development/WebConsoleController.php diff --git a/composer.json b/composer.json index 03d5e3e62..9a2f62ce5 100755 --- a/composer.json +++ b/composer.json @@ -17,7 +17,6 @@ "ext-pdo_mysql": "*", "ext-tokenizer": "*", "astrotomic/laravel-translatable": "^11.0.0", - "alkhachatryan/laravel-web-console": "1.5.1", "barryvdh/laravel-dompdf": "0.8.3", "doctrine/dbal": "2.9.2", "fideloper/proxy": "^4.0", diff --git a/config/laravelwebconsole.php b/config/laravelwebconsole.php deleted file mode 100644 index 1e3be3bce..000000000 --- a/config/laravelwebconsole.php +++ /dev/null @@ -1,51 +0,0 @@ - false, - - // Single-user credentials (REQUIRED) - 'user' => [ - 'name' => env('CONSOLE_USER_NAME', 'root'), - 'password' => env('CONSOLE_USER_PASSWORD', 'root'), - ], - - // Multi-user credentials (OPTIONAL) - // Example: 'user' => 'password', 'user1' => 'password1' - 'accounts' => [ - // 'user' => 'password', - ], - - // Hash incoming password - // By default it's sha256 - 'password_hash_algorithm' => '', - - // Home directory (multi-user mode supported) - // Example: 'home_dir' => '/tmp'; - // 'home_dir' => array('user1' => '/home/user1', 'user2' => '/home/user2'); - 'home_dir' => '', -]; diff --git a/packages/Webkul/Admin/src/Http/Controllers/Development/WebConsoleController.php b/packages/Webkul/Admin/src/Http/Controllers/Development/WebConsoleController.php deleted file mode 100755 index 649f3c730..000000000 --- a/packages/Webkul/Admin/src/Http/Controllers/Development/WebConsoleController.php +++ /dev/null @@ -1,24 +0,0 @@ - - * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) - */ -class WebConsoleController extends Controller -{ - /** - * Show the Web Console. - * - * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory - */ - public function index(){ - return LaravelWebConsole::show(); - } -} \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 22bd07448..50c6557bd 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -765,10 +765,7 @@ Route::group(['middleware' => ['web']], function () { Route::prefix('development')->group(function () { Route::get('/', 'Webkul\Admin\Http\Controllers\Development\DashboardController@index') ->name('admin.development.index'); - - Route::get('webconsole', 'Webkul\Admin\Http\Controllers\Development\WebConsoleController@index') - ->name('admin.development.webconsole'); }); }); }); -}); \ No newline at end of file +}); From 71e8e687c246dc29714ee770d996326aa990c2dc Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 26 Nov 2019 13:32:42 +0100 Subject: [PATCH 10/17] PR 1782 Enhancement: Let variants be of other types than simple --- .../views/catalog/products/create.blade.php | 2 +- .../Http/Listeners/CustomerEventsHandler.php | 33 +++++++++++++++++++ .../Webkul/Product/src/Type/Configurable.php | 9 ++++- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100755 packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php index c3ff363e0..7308fd5c1 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/create.blade.php @@ -64,7 +64,7 @@ @if ($familyId) - + @endif @{{ errors.first('type') }} diff --git a/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php b/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php new file mode 100755 index 000000000..f5b395c62 --- /dev/null +++ b/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php @@ -0,0 +1,33 @@ +listen('customer.after.login', 'Webkul\Customer\Http\Listeners\CustomerEventsHandler@onCustomerLogin'); + } +} \ No newline at end of file diff --git a/packages/Webkul/Product/src/Type/Configurable.php b/packages/Webkul/Product/src/Type/Configurable.php index 6977bf5de..d604d5a63 100644 --- a/packages/Webkul/Product/src/Type/Configurable.php +++ b/packages/Webkul/Product/src/Type/Configurable.php @@ -143,9 +143,16 @@ class Configurable extends AbstractType ]; } + $typeOfVariants = 'simple'; + $productInstance = app(config('product_types.' . $product->type . '.class')); + if ($productInstance->variantsType && !in_array($productInstance->variantsType , ['bundle', 'configurable', 'grouped'])) + { + $typeOfVariants = $productInstance->variantsType; + } + $variant = $this->productRepository->getModel()->create([ 'parent_id' => $product->id, - 'type' => 'simple', + 'type' => $typeOfVariants, 'attribute_family_id' => $product->attribute_family_id, 'sku' => $data['sku'], ]); From d29b8332e140c5d74b550e0d63a270e3d3b2386c Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 26 Nov 2019 13:41:04 +0100 Subject: [PATCH 11/17] undo something stupid when merging branch into recent bagisto master --- .../Http/Listeners/CustomerEventsHandler.php | 33 ------------------- 1 file changed, 33 deletions(-) delete mode 100755 packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php diff --git a/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php b/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php deleted file mode 100755 index f5b395c62..000000000 --- a/packages/Webkul/Customer/src/Http/Listeners/CustomerEventsHandler.php +++ /dev/null @@ -1,33 +0,0 @@ -listen('customer.after.login', 'Webkul\Customer\Http\Listeners\CustomerEventsHandler@onCustomerLogin'); - } -} \ No newline at end of file From 2d23123660fe1a9fd322d0338bd1554303408b11 Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Tue, 26 Nov 2019 13:45:02 +0100 Subject: [PATCH 12/17] adapt to code standard --- packages/Webkul/Product/src/Type/Configurable.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/Webkul/Product/src/Type/Configurable.php b/packages/Webkul/Product/src/Type/Configurable.php index d604d5a63..9b61209c4 100644 --- a/packages/Webkul/Product/src/Type/Configurable.php +++ b/packages/Webkul/Product/src/Type/Configurable.php @@ -145,8 +145,7 @@ class Configurable extends AbstractType $typeOfVariants = 'simple'; $productInstance = app(config('product_types.' . $product->type . '.class')); - if ($productInstance->variantsType && !in_array($productInstance->variantsType , ['bundle', 'configurable', 'grouped'])) - { + if ($productInstance->variantsType && ! in_array($productInstance->variantsType , ['bundle', 'configurable', 'grouped'])) { $typeOfVariants = $productInstance->variantsType; } From 406c32012d8bef11d7ead5a893118f45ebeb683b Mon Sep 17 00:00:00 2001 From: Annika Wolff Date: Wed, 27 Nov 2019 09:53:11 +0100 Subject: [PATCH 13/17] add check if property is set --- packages/Webkul/Product/src/Type/Configurable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Product/src/Type/Configurable.php b/packages/Webkul/Product/src/Type/Configurable.php index 9b61209c4..e0f1c3eea 100644 --- a/packages/Webkul/Product/src/Type/Configurable.php +++ b/packages/Webkul/Product/src/Type/Configurable.php @@ -145,7 +145,7 @@ class Configurable extends AbstractType $typeOfVariants = 'simple'; $productInstance = app(config('product_types.' . $product->type . '.class')); - if ($productInstance->variantsType && ! in_array($productInstance->variantsType , ['bundle', 'configurable', 'grouped'])) { + if (isset($productInstance->variantsType) && ! in_array($productInstance->variantsType , ['bundle', 'configurable', 'grouped'])) { $typeOfVariants = $productInstance->variantsType; } From 26b85fca06271ad67e55815aaff33ca831b6e82e Mon Sep 17 00:00:00 2001 From: "shubhammehrotra.symfony@webkul.com" Date: Fri, 29 Nov 2019 19:03:30 +0530 Subject: [PATCH 14/17] template correction --- packages/Webkul/Core/src/Templates/on-boarding.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Core/src/Templates/on-boarding.php b/packages/Webkul/Core/src/Templates/on-boarding.php index e5311fbd6..21ff4eaea 100644 --- a/packages/Webkul/Core/src/Templates/on-boarding.php +++ b/packages/Webkul/Core/src/Templates/on-boarding.php @@ -9,6 +9,6 @@ Welcome to the Bagisto project! Bagisto Community is an open-source e-commerce ecosystem -which is built on top of top of Laravel and Vue.js. +which is built on top of Laravel and Vue.js. Made with 💖 by the Bagisto Team. Happy helping :) From 02ca34affac85217bde3a49eadc19c44d5a1fb4e Mon Sep 17 00:00:00 2001 From: Dirk Helbert Date: Sun, 1 Dec 2019 22:59:16 +0100 Subject: [PATCH 15/17] Take the fallback_locale from app.config when locale is not defined in shop --- packages/Webkul/Core/src/Core.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php index 9bfc791a3..963af1b00 100755 --- a/packages/Webkul/Core/src/Core.php +++ b/packages/Webkul/Core/src/Core.php @@ -211,7 +211,13 @@ class Core if ($locale) return $locale; - return $locale = $this->localeRepository->findOneByField('code', app()->getLocale()); + $locale = $this->localeRepository->findOneByField('code', app()->getLocale()); + + if(!$locale) { + $locale = $this->localeRepository->findOneByField('code', config('app.fallback_locale')); + } + + return $locale; } /** From 3efe3a7f61bddd327ffc9ce927d74e3df75675db Mon Sep 17 00:00:00 2001 From: Herbert Maschke Date: Mon, 25 Nov 2019 15:16:21 +0100 Subject: [PATCH 16/17] improve generation of slugs --- .gitignore | 3 ++- .../Resources/assets/js/directives/slugify.vue | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 91f23accb..fa1eccb1e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ /public/js /public/vendor /public/themes -/storage/*.key /vendor /.idea /.vscode @@ -21,3 +20,5 @@ yarn.lock package-lock.json yarn.lock .php_cs.cache +storage/ +storage/*.key diff --git a/packages/Webkul/Ui/src/Resources/assets/js/directives/slugify.vue b/packages/Webkul/Ui/src/Resources/assets/js/directives/slugify.vue index 30cb16415..7e1bab0c5 100755 --- a/packages/Webkul/Ui/src/Resources/assets/js/directives/slugify.vue +++ b/packages/Webkul/Ui/src/Resources/assets/js/directives/slugify.vue @@ -1,12 +1,15 @@