From 27b1f1fad9cb83d390dc871ea429879b33134459 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 26 Oct 2018 19:13:01 +0530 Subject: [PATCH] Issues fixed --- config/filesystems.php | 2 +- packages/Webkul/Admin/src/Listeners/Order.php | 2 +- .../Webkul/Admin/src/Listeners/Product.php | 2 +- .../Admin/src/Mail/NewOrderNotification.php | 3 ++- .../views/layouts/anonymous-master.blade.php | 2 +- packages/Webkul/Admin/webpack.mix.js | 2 +- packages/Webkul/Checkout/src/Cart.php | 11 +++++++---- .../Webkul/Checkout/src/Models/CartAddress.php | 2 +- ...018_07_24_082930_create_customers_table.php | 4 ++-- .../Webkul/Customer/src/Models/Customer.php | 8 ++++++++ .../src/Repositories/InvoiceRepository.php | 4 ++-- .../Sales/src/Repositories/OrderRepository.php | 4 ++-- .../src/Repositories/ShipmentRepository.php | 4 ++-- .../Resources/views/checkout/onepage.blade.php | 18 ++++++++++++++++++ .../views/checkout/onepage/review.blade.php | 4 ++-- .../src/Database/Seeders/AdminsTableSeeder.php | 2 +- 16 files changed, 52 insertions(+), 22 deletions(-) diff --git a/config/filesystems.php b/config/filesystems.php index b36f4c121..ff77a5023 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -51,7 +51,7 @@ return [ 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), - 'url' => env('APP_URL') . '/public/storage', + 'url' => env('APP_URL') . '/storage', 'visibility' => 'public', ], diff --git a/packages/Webkul/Admin/src/Listeners/Order.php b/packages/Webkul/Admin/src/Listeners/Order.php index 61a068d4e..3d3a8c1c7 100644 --- a/packages/Webkul/Admin/src/Listeners/Order.php +++ b/packages/Webkul/Admin/src/Listeners/Order.php @@ -52,7 +52,7 @@ class Order { */ public function updateProductInventory($order) { - $productListener = app(Webkul\Admin\Listeners\Product::class); + $productListener = app(\Webkul\Admin\Listeners\Product::class); foreach ($order->items as $item) { $productListener->afterProductCreated($item->product); diff --git a/packages/Webkul/Admin/src/Listeners/Product.php b/packages/Webkul/Admin/src/Listeners/Product.php index 78a82a86e..e716e8c65 100644 --- a/packages/Webkul/Admin/src/Listeners/Product.php +++ b/packages/Webkul/Admin/src/Listeners/Product.php @@ -97,7 +97,7 @@ class Product { } else { $qty = 0; - foreach($product->inventories->get() as $inventory_source) { + foreach($product->inventories()->get() as $inventory_source) { $qty = $qty + $inventory_source->qty; } diff --git a/packages/Webkul/Admin/src/Mail/NewOrderNotification.php b/packages/Webkul/Admin/src/Mail/NewOrderNotification.php index d656499c7..b3d0b7b6c 100644 --- a/packages/Webkul/Admin/src/Mail/NewOrderNotification.php +++ b/packages/Webkul/Admin/src/Mail/NewOrderNotification.php @@ -41,7 +41,8 @@ class NewOrderNotification extends Mailable */ public function build() { - return $this->to($this->order->customer_email, $this->order->customer_full_name) + if($this->order->customer_email) + return $this->to($this->order->customer_email, $this->order->customer_full_name) ->subject(trans('shop::app.mail.order.subject')) ->view('shop::emails.sales.new-order'); } diff --git a/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php b/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php index 9fef717d7..c17d48dae 100644 --- a/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/layouts/anonymous-master.blade.php @@ -75,7 +75,7 @@
@yield('content') diff --git a/packages/Webkul/Admin/webpack.mix.js b/packages/Webkul/Admin/webpack.mix.js index 9fa7b1853..92e3d593b 100644 --- a/packages/Webkul/Admin/webpack.mix.js +++ b/packages/Webkul/Admin/webpack.mix.js @@ -8,7 +8,7 @@ mix.setPublicPath(publicPath).mergeManifest(); mix.disableNotifications(); mix.js(__dirname + "/src/Resources/assets/js/app.js", "js/admin.js") - // .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') + .copyDirectory( __dirname + '/src/Resources/assets/images', publicPath + '/images') .sass(__dirname + "/src/Resources/assets/sass/app.scss", "css/admin.css") .options({ processCssUrls: false diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index 67b255f39..8b1659ab8 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -708,11 +708,11 @@ class Cart { if($billingAddressModel = $cart->billing_address) { $this->cartAddress->update($billingAddress, $billingAddressModel->id); - if($shippingAddress = $cart->shipping_address) { + if($shippingAddressModel = $cart->shipping_address) { if(isset($billingAddress['use_for_shipping']) && $billingAddress['use_for_shipping']) { - $this->cartAddress->update($billingAddress, $shippingAddress->id); + $this->cartAddress->update($billingAddress, $shippingAddressModel->id); } else { - $this->cartAddress->update($shippingAddress, $shippingAddress->id); + $this->cartAddress->update($shippingAddress, $shippingAddressModel->id); } } else { if(isset($billingAddress['use_for_shipping']) && $billingAddress['use_for_shipping']) { @@ -731,7 +731,10 @@ class Cart { } } - // If customer is guest, than save shipping address's email and name in cart as customer details + $cart->customer_email = $cart->shipping_address->email; + $cart->customer_first_name = $cart->shipping_address->first_name; + $cart->customer_last_name = $cart->shipping_address->last_name; + $cart->save(); return true; } diff --git a/packages/Webkul/Checkout/src/Models/CartAddress.php b/packages/Webkul/Checkout/src/Models/CartAddress.php index 6af3f6a8f..b80c3215e 100644 --- a/packages/Webkul/Checkout/src/Models/CartAddress.php +++ b/packages/Webkul/Checkout/src/Models/CartAddress.php @@ -9,7 +9,7 @@ class CartAddress extends Model { protected $table = 'cart_address'; - protected $fillable = ['first_name', 'last_name', 'email', 'address1', 'address2', 'city', 'state', 'postcode', 'country', 'email', 'phone', 'address_type', 'cart_id']; + protected $fillable = ['first_name', 'last_name', 'email', 'address1', 'address2', 'city', 'state', 'postcode', 'country', 'phone', 'address_type', 'cart_id']; /** * Get the shipping rates for the cart address. diff --git a/packages/Webkul/Customer/src/Database/migrations/2018_07_24_082930_create_customers_table.php b/packages/Webkul/Customer/src/Database/migrations/2018_07_24_082930_create_customers_table.php index 691340260..83fe534fa 100644 --- a/packages/Webkul/Customer/src/Database/migrations/2018_07_24_082930_create_customers_table.php +++ b/packages/Webkul/Customer/src/Database/migrations/2018_07_24_082930_create_customers_table.php @@ -16,7 +16,7 @@ class CreateCustomersTable extends Migration Schema::create('customers', function (Blueprint $table) { $table->increments('id'); $table->integer('channel_id')->unsigned(); - $table->foreign('channel_id')->references('id')->on('channels')->onDelete('SET NULL'); + $table->foreign('channel_id')->references('id')->on('channels')->onDelete('restrict'); $table->string('first_name'); $table->string('last_name'); $table->enum('gender', ['Male', 'Female']); @@ -26,7 +26,7 @@ class CreateCustomersTable extends Migration $table->tinyInteger('status')->default(1); $table->string('password'); $table->integer('customer_group_id')->unsigned()->nullable(); - $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('SET NULL'); + $table->foreign('customer_group_id')->references('id')->on('customer_groups')->onDelete('set null'); $table->boolean('subscribed_to_news_letter')->default(0); $table->rememberToken(); $table->timestamps(); diff --git a/packages/Webkul/Customer/src/Models/Customer.php b/packages/Webkul/Customer/src/Models/Customer.php index 7a8ce11be..78381d7ba 100644 --- a/packages/Webkul/Customer/src/Models/Customer.php +++ b/packages/Webkul/Customer/src/Models/Customer.php @@ -46,4 +46,12 @@ class Customer extends Authenticatable { $this->notify(new CustomerResetPassword($token)); } + + /** + * Get the customer address that owns the customer. + */ + public function address() + { + return $this->hasOne(CustomerAddress::class); + } } diff --git a/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php b/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php index 74ff4bb6a..82448b77f 100644 --- a/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php +++ b/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php @@ -154,6 +154,8 @@ class InvoiceRepository extends Repository $this->order->collectTotals($order); $this->order->updateOrderStatus($order); + + Event::fire('sales.invoice.save.after', $invoice); } catch (\Exception $e) { DB::rollBack(); @@ -162,8 +164,6 @@ class InvoiceRepository extends Repository DB::commit(); - Event::fire('sales.invoice.save.after', $invoice); - return $invoice; } diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index d8bb52768..39b299ed1 100644 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -109,6 +109,8 @@ class OrderRepository extends Repository $this->orderItemInventory->create(['orderItem' => $orderItem]); } + + Event::fire('checkout.order.save.after', $order); } catch (\Exception $e) { DB::rollBack(); @@ -117,8 +119,6 @@ class OrderRepository extends Repository DB::commit(); - Event::fire('checkout.order.save.after', $order); - return $order; } diff --git a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php index fa80b5051..de5c5c043 100644 --- a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php +++ b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php @@ -128,6 +128,8 @@ class ShipmentRepository extends Repository } $this->order->updateOrderStatus($order); + + Event::fire('sales.shipment.save.after', $shipment); } catch (\Exception $e) { DB::rollBack(); @@ -136,8 +138,6 @@ class ShipmentRepository extends Repository DB::commit(); - Event::fire('sales.shipment.save.after', $shipment); - return $shipment; } } \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php index af63858bd..fac86872c 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php @@ -117,6 +117,17 @@ var paymentHtml = ''; var reviewHtml = ''; var summaryHtml = Vue.compile(` $cart])->render(); ?>`); + var customerAddress = null; + @auth('customer') + @if(auth('customer')->user()->address) + customerAddress = @json(auth('customer')->user()->address); + @else + customerAddress = {}; + @endif + customerAddress.email = "{{ auth('customer')->user()->email }}"; + customerAddress.first_name = "{{ auth('customer')->user()->first_name }}"; + customerAddress.last_name = "{{ auth('customer')->user()->last_name }}"; + @endauth Vue.component('checkout', { @@ -146,6 +157,13 @@ countryStates: @json(core()->groupedStatesByCountries()) }), + created() { + if(customerAddress) { + this.address.billing = customerAddress; + this.address.use_for_shipping = true; + } + }, + methods: { navigateToStep (step) { if(step <= this.completedStep) { diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php index 17360e5c6..b8848fe8b 100644 --- a/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/onepage/review.blade.php @@ -100,7 +100,7 @@
-
+
@@ -128,7 +128,7 @@
-
+
@include('shop::checkout.total.summary', ['cart' => $cart]) diff --git a/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php b/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php index 46532b214..6b4050cd7 100644 --- a/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php +++ b/packages/Webkul/User/src/Database/Seeders/AdminsTableSeeder.php @@ -12,7 +12,7 @@ class AdminsTableSeeder extends Seeder { $role = Role::first(); $admin = new Admin(); - $admin->name = str_random(8); + $admin->name = 'Example'; $admin->email = 'admin@example.com'; $admin->password = bcrypt('admin123'); $admin->status = 1;