From 7eee7e31347486e154715b855237243223cc48c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gro=C3=9Fe?= Date: Mon, 13 Jan 2020 11:20:04 +0100 Subject: [PATCH] split the 'name' column in the customer addresses into 'first_name' and 'last_name' - it is more common to save the data in this structure --- ..._name_and_vat_id_to_customer_addresses.php | 10 ++ .../Http/Controllers/AddressController.php | 32 +++-- .../Customer/src/Models/CustomerAddress.php | 2 + .../Webkul/Shop/src/Resources/lang/en/app.php | 4 + .../account/address/create.blade.php | 14 +- .../customers/account/address/edit.blade.php | 16 ++- .../customers/account/address/index.blade.php | 125 ++++++++++-------- tests/functional/Customer/CustomerCest.php | 10 +- 8 files changed, 137 insertions(+), 76 deletions(-) diff --git a/packages/Webkul/Customer/src/Database/Migrations/2020_01_10_151902_add_company_name_and_vat_id_to_customer_addresses.php b/packages/Webkul/Customer/src/Database/Migrations/2020_01_10_151902_add_company_name_and_vat_id_to_customer_addresses.php index 9ccebadd3..416ade2ab 100644 --- a/packages/Webkul/Customer/src/Database/Migrations/2020_01_10_151902_add_company_name_and_vat_id_to_customer_addresses.php +++ b/packages/Webkul/Customer/src/Database/Migrations/2020_01_10_151902_add_company_name_and_vat_id_to_customer_addresses.php @@ -16,6 +16,13 @@ class AddCompanyNameAndVatIdToCustomerAddresses extends Migration Schema::table('customer_addresses', function (Blueprint $table) { $table->string('company_name')->nullable()->before('address1'); $table->string('vat_id')->nullable()->after('company_name'); + + + // split 'name' column into first_name and last_name + $table->dropColumn('name'); + + $table->string('first_name')->after('company_name'); + $table->string('last_name')->after('first_name'); }); } @@ -29,6 +36,9 @@ class AddCompanyNameAndVatIdToCustomerAddresses extends Migration Schema::table('customer_addresses', function (Blueprint $table) { $table->dropColumn('company_name'); $table->dropColumn('vat_id'); + $table->dropColumn('first_name'); + $table->dropColumn('last_name'); + $table->string('name'); }); } } diff --git a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php index 8e074df72..fd21c24f3 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php @@ -76,13 +76,15 @@ class AddressController extends Controller $data = collect(request()->input())->except('_token')->toArray(); $this->validate(request(), [ - 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', - 'postcode' => 'required', - 'phone' => 'required', - 'vat_id' => new VatIdRule(), + 'first_name' => 'string|required', + 'last_name' => 'string|required', + 'address1' => 'string|required', + 'country' => 'string|required', + 'state' => 'string|required', + 'city' => 'string|required', + 'postcode' => 'required', + 'phone' => 'required', + 'vat_id' => new VatIdRule(), ]); $cust_id['customer_id'] = $this->customer->id; @@ -132,13 +134,15 @@ class AddressController extends Controller request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]); $this->validate(request(), [ - 'address1' => 'string|required', - 'country' => 'string|required', - 'state' => 'string|required', - 'city' => 'string|required', - 'postcode' => 'required', - 'phone' => 'required', - 'vat_id' => new VatIdRule(), + 'first_name' => 'string|required', + 'last_name' => 'string|required', + 'address1' => 'string|required', + 'country' => 'string|required', + 'state' => 'string|required', + 'city' => 'string|required', + 'postcode' => 'required', + 'phone' => 'required', + 'vat_id' => new VatIdRule(), ]); $data = collect(request()->input())->except('_token')->toArray(); diff --git a/packages/Webkul/Customer/src/Models/CustomerAddress.php b/packages/Webkul/Customer/src/Models/CustomerAddress.php index 14136f2e3..d571e7c89 100755 --- a/packages/Webkul/Customer/src/Models/CustomerAddress.php +++ b/packages/Webkul/Customer/src/Models/CustomerAddress.php @@ -12,6 +12,8 @@ class CustomerAddress extends Model implements CustomerAddressContract protected $fillable = [ 'customer_id', 'company_name', + 'first_name', + 'last_name', 'vat_id', 'address1', 'address2', diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php index ad160f423..f7f35f0bf 100755 --- a/packages/Webkul/Shop/src/Resources/lang/en/app.php +++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php @@ -221,6 +221,8 @@ return [ 'create' => [ 'page-title' => 'Add Address Form', 'company_name' => 'Company name', + 'first_name' => 'First name', + 'last_name' => 'Last name', 'vat_id' => 'Vat id', 'title' => 'Add Address', 'street-address' => 'Street Address', @@ -238,6 +240,8 @@ return [ 'edit' => [ 'page-title' => 'Edit Address', 'company_name' => 'Company name', + 'first_name' => 'First name', + 'last_name' => 'Last name', 'vat_id' => 'Vat id', 'title' => 'Edit Address', 'street-address' => 'Street Address', diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php index ec83c6e8e..dc1992aca 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/create.blade.php @@ -29,7 +29,7 @@ {!! view_render_event('bagisto.shop.customers.account.address.create.before') !!} -
+ +
+ + + @{{ errors.first('first_name') }} +
+ +
+ + + @{{ errors.first('last_name') }} +
+
diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php index 440b51ba5..cf8c8253d 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/edit.blade.php @@ -29,7 +29,7 @@ {!! view_render_event('bagisto.shop.customers.account.address.edit.before', ['address' => $address]) !!} - + +
+ + + @{{ errors.first('first_name') }} +
+ +
+ + + @{{ errors.first('last_name') }} +
+
@@ -94,7 +106,7 @@
-
+ {!! view_render_event('bagisto.shop.customers.account.address.edit.after', ['address' => $address]) !!} diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/address/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/address/index.blade.php index 3a397ea24..b4ab4861d 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/address/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/address/index.blade.php @@ -6,95 +6,108 @@ @section('content-wrapper') -
+ - {!! view_render_event('bagisto.shop.customers.account.address.list.after', ['addresses' => $addresses]) !!} + {!! view_render_event('bagisto.shop.customers.account.address.list.after', ['addresses' => $addresses]) !!} +
- @endsection @push('scripts') @endpush diff --git a/tests/functional/Customer/CustomerCest.php b/tests/functional/Customer/CustomerCest.php index 09ab339e5..42338f005 100644 --- a/tests/functional/Customer/CustomerCest.php +++ b/tests/functional/Customer/CustomerCest.php @@ -11,7 +11,7 @@ class CustomerCest public function updateCustomerProfile(FunctionalTester $I) { - $customer = $I->loginAsCustomer(); + $I->loginAsCustomer(); $I->amOnPage('/'); @@ -37,9 +37,9 @@ class CustomerCest { $faker = Faker\Factory::create(); - $formCssSelector = '.account-layout > form:nth-child(2)'; + $formCssSelector = '#customer-address-form'; - $customer = $I->loginAsCustomer(); + $I->loginAsCustomer(); $I->amOnPage('/'); @@ -51,6 +51,8 @@ class CustomerCest $fields = [ 'company_name' => $faker->company, + 'first_name' => $faker->firstName, + 'last_name' => $faker->lastName, 'vat_id' => $faker->randomNumber(9), 'address1[]' => $faker->streetAddress, 'country' => $faker->countryCode, @@ -90,6 +92,8 @@ class CustomerCest $I->seeRecord(CustomerAddress::class, [ 'company_name' => $fields['company_name'], + 'first_name' => $fields['first_name'], + 'last_name' => $fields['last_name'], 'vat_id' => $fields['vat_id'], 'address1' => $fields['address1[]'], 'country' => $fields['country'],