mirror of
https://github.com/crater-invoice/crater.git
synced 2025-12-15 09:52:55 -05:00
remove state & city stuff, Add listener version200
This commit is contained in:
@@ -4,8 +4,6 @@ namespace Crater;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Crater\User;
|
||||
use Crater\Country;
|
||||
use Crater\State;
|
||||
use Crater\City;
|
||||
|
||||
class Address extends Model
|
||||
{
|
||||
@@ -16,8 +14,8 @@ class Address extends Model
|
||||
'name',
|
||||
'address_street_1',
|
||||
'address_street_2',
|
||||
'city_id',
|
||||
'state_id',
|
||||
'city',
|
||||
'state',
|
||||
'country_id',
|
||||
'zip',
|
||||
'phone',
|
||||
@@ -35,14 +33,4 @@ class Address extends Model
|
||||
{
|
||||
return $this->belongsTo(Country::class);
|
||||
}
|
||||
|
||||
public function state()
|
||||
{
|
||||
return $this->belongsTo(State::class);
|
||||
}
|
||||
|
||||
public function city()
|
||||
{
|
||||
return $this->belongsTo(City::class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,15 +2,9 @@
|
||||
namespace Crater;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Crater\State;
|
||||
|
||||
class Country extends Model
|
||||
{
|
||||
public function states()
|
||||
{
|
||||
return $this->hasMany(State::class);
|
||||
}
|
||||
|
||||
public function address()
|
||||
{
|
||||
return $this->hasMany(Address::class);
|
||||
|
||||
@@ -56,7 +56,7 @@ class CompanyController extends Controller
|
||||
|
||||
public function getAdminCompany()
|
||||
{
|
||||
$user = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city', 'company'])->find(1);
|
||||
$user = User::with(['addresses', 'addresses.country', 'company'])->find(1);
|
||||
|
||||
return response()->json([
|
||||
'user' => $user
|
||||
@@ -75,9 +75,9 @@ class CompanyController extends Controller
|
||||
$company->addMediaFromRequest('logo')->toMediaCollection('logo');
|
||||
}
|
||||
|
||||
$fields = $request->only(['address_street_1', 'address_street_2', 'city_id', 'state_id', 'country_id', 'zip', 'phone']);
|
||||
$fields = $request->only(['address_street_1', 'address_street_2', 'city', 'state', 'country_id', 'zip', 'phone']);
|
||||
$address = Address::updateOrCreate(['user_id' => 1], $fields);
|
||||
$user = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city', 'company'])->find(1);
|
||||
$user = User::with(['addresses', 'addresses.country', 'company'])->find(1);
|
||||
|
||||
return response()->json([
|
||||
'user' => $user,
|
||||
|
||||
@@ -80,8 +80,8 @@ class CustomersController extends Controller
|
||||
$newAddress->name = $address["name"];
|
||||
$newAddress->address_street_1 = $address["address_street_1"];
|
||||
$newAddress->address_street_2 = $address["address_street_2"];
|
||||
$newAddress->city_id = $address["city_id"];
|
||||
$newAddress->state_id = $address["state_id"];
|
||||
$newAddress->city = $address["city"];
|
||||
$newAddress->state = $address["state"];
|
||||
$newAddress->country_id = $address["country_id"];
|
||||
$newAddress->zip = $address["zip"];
|
||||
$newAddress->phone = $address["phone"];
|
||||
@@ -187,8 +187,8 @@ class CustomersController extends Controller
|
||||
$newAddress->name = $address["name"];
|
||||
$newAddress->address_street_1 = $address["address_street_1"];
|
||||
$newAddress->address_street_2 = $address["address_street_2"];
|
||||
$newAddress->city_id = $address["city_id"];
|
||||
$newAddress->state_id = $address["state_id"];
|
||||
$newAddress->city = $address["city"];
|
||||
$newAddress->state = $address["state"];
|
||||
$newAddress->country_id = $address["country_id"];
|
||||
$newAddress->zip = $address["zip"];
|
||||
$newAddress->phone = $address["phone"];
|
||||
|
||||
@@ -90,7 +90,7 @@ class FrontendController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||
|
||||
$colors = [
|
||||
'invoice_primary_color',
|
||||
@@ -189,7 +189,7 @@ class FrontendController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||
|
||||
$colors = [
|
||||
'invoice_primary_color',
|
||||
@@ -262,7 +262,7 @@ class FrontendController extends Controller
|
||||
$estimateTemplate = EstimateTemplate::find($estimate->estimate_template_id);
|
||||
|
||||
$company = Company::find($estimate->company_id);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||
$logo = $company->getMedia('logo')->first();
|
||||
|
||||
if($logo) {
|
||||
@@ -338,7 +338,7 @@ class FrontendController extends Controller
|
||||
|
||||
$invoiceTemplate = InvoiceTemplate::find($invoice->invoice_template_id);
|
||||
$company = Company::find($invoice->company_id);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country', 'addresses.state', 'addresses.city'])->find(1);
|
||||
$companyAddress = User::with(['addresses', 'addresses.country'])->find(1);
|
||||
|
||||
$logo = $company->getMedia('logo')->first();
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@ namespace Crater\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Country;
|
||||
use Crater\State;
|
||||
use Crater\City;
|
||||
|
||||
class LocationController extends Controller
|
||||
{
|
||||
@@ -14,18 +12,4 @@ class LocationController extends Controller
|
||||
'countries' => Country::all()
|
||||
]);
|
||||
}
|
||||
|
||||
public function getStates($id)
|
||||
{
|
||||
return response()->json([
|
||||
'states' => Country::find($id)->states
|
||||
]);
|
||||
}
|
||||
|
||||
public function getCities($id)
|
||||
{
|
||||
return response()->json([
|
||||
'cities' => State::find($id)->cities
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,8 +58,6 @@ class OnboardingController extends Controller
|
||||
$user = User::with([
|
||||
'addresses',
|
||||
'addresses.country',
|
||||
'addresses.state',
|
||||
'addresses.city',
|
||||
'company'
|
||||
])->find(1);
|
||||
|
||||
@@ -156,8 +154,8 @@ class OnboardingController extends Controller
|
||||
$fields = $request->only([
|
||||
'address_street_1',
|
||||
'address_street_2',
|
||||
'city_id',
|
||||
'state_id',
|
||||
'city',
|
||||
'state',
|
||||
'country_id',
|
||||
'zip',
|
||||
'phone'
|
||||
|
||||
110
app/Listeners/Updates/v2/Version200.php
Normal file
110
app/Listeners/Updates/v2/Version200.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Listeners\Updates\v2;
|
||||
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Crater\Listeners\Updates\Listener;
|
||||
use Crater\Listeners\Updates\v2\Version200;
|
||||
use Crater\Events\UpdateFinished;
|
||||
use Crater\Setting;
|
||||
use Crater\Address;
|
||||
|
||||
class Version200 extends Listener
|
||||
{
|
||||
const VERSION = '2.0.0';
|
||||
|
||||
/**
|
||||
* Create the event listener.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the event.
|
||||
*
|
||||
* @param object $event
|
||||
* @return void
|
||||
*/
|
||||
public function handle(UpdateFinished $event)
|
||||
{
|
||||
if ($this->isListenerFired($event)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Replace state and city id to name
|
||||
$this->replaceStateAndCityName();
|
||||
|
||||
// Drop states and cities foreign key
|
||||
$this->dropForeignKey();
|
||||
|
||||
// Remove states and cities tables
|
||||
$this->dropSchemas();
|
||||
|
||||
// Delete state & city models, migrations & seeders
|
||||
$this->deleteFiles();
|
||||
|
||||
// Update Crater app version
|
||||
$this->updateVersion();
|
||||
}
|
||||
|
||||
private function replaceStateAndCityName() {
|
||||
\Schema::table('addresses', function (Blueprint $table) {
|
||||
$table->string('state')->nullable();
|
||||
$table->string('city')->nullable();
|
||||
});
|
||||
|
||||
$addresses = \Crater\Address::all();
|
||||
foreach ($addresses as $add) {
|
||||
$city = \Crater\City::find($add->city_id);
|
||||
if($city) {
|
||||
$add->city = $city->name;
|
||||
}
|
||||
|
||||
$state = \Crater\State::find($add->state_id);
|
||||
if($state) {
|
||||
$add->state = $state->name;
|
||||
}
|
||||
|
||||
$add->save();
|
||||
}
|
||||
}
|
||||
|
||||
private function dropForeignKey() {
|
||||
\Schema::table('addresses', function (Blueprint $table) {
|
||||
$table->dropForeign('addresses_state_id_foreign');
|
||||
$table->dropForeign('addresses_city_id_foreign');
|
||||
$table->dropColumn('state_id');
|
||||
$table->dropColumn('city_id');
|
||||
});
|
||||
}
|
||||
|
||||
private function dropSchemas() {
|
||||
\Schema::disableForeignKeyConstraints();
|
||||
|
||||
\Schema::dropIfExists('states');
|
||||
\Schema::dropIfExists('cities');
|
||||
|
||||
\Schema::enableForeignKeyConstraints();
|
||||
}
|
||||
|
||||
private function deleteFiles() {
|
||||
\File::delete(
|
||||
database_path('migrations/2017_05_06_172817_create_cities_table.php'),
|
||||
database_path('migrations/2017_05_06_173711_create_states_table.php'),
|
||||
database_path('seeds/StatesTableSeeder.php'),
|
||||
database_path('seeds/CitiesTableSeeder.php'),
|
||||
app_path('City.php'),
|
||||
app_path('State.php')
|
||||
);
|
||||
}
|
||||
|
||||
private function updateVersion() {
|
||||
Setting::setSetting('version', static::VERSION);
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Crater\Events\UpdateFinished;
|
||||
use Crater\Listeners\Updates\v1\Version110;
|
||||
use Crater\Listeners\Updates\v2\Version200;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -17,6 +18,7 @@ class EventServiceProvider extends ServiceProvider
|
||||
protected $listen = [
|
||||
UpdateFinished::class=> [
|
||||
Version110::class,
|
||||
Version200::class,
|
||||
],
|
||||
Registered::class => [
|
||||
SendEmailVerificationNotification::class,
|
||||
|
||||
Reference in New Issue
Block a user