mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-31 05:31:10 -04: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