mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 22:07:33 -05:00 
			
		
		
		
	Merge pull request #6286 from turbo124/v5-develop
Uses inclusives taxes fix
This commit is contained in:
		
						commit
						970cf417cc
					
				
							
								
								
									
										52
									
								
								app/Http/Controllers/HostedMigrationController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								app/Http/Controllers/HostedMigrationController.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Invoice Ninja (https://invoiceninja.com).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @license https://www.elastic.co/licensing/elastic-license
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Http\Controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Jobs\Account\CreateAccount;
 | 
				
			||||||
 | 
					use App\Libraries\MultiDB;
 | 
				
			||||||
 | 
					use App\Models\CompanyToken;
 | 
				
			||||||
 | 
					use Illuminate\Http\Request;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class HostedMigrationController extends Controller
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getAccount(Request $request)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if($request->header('X-API-HOSTED-SECRET') != config('ninja.ninja_hosted_secret'))
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if($user = MultiDB::hasUser(['email' => $request->input('email')]))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if($user->account->owner() && $user->account->companies()->count() >= 1)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return response()->json(['token' => $user->account->companies->first()->tokens->first()->token] ,200);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return response()->json(['error' => 'This user is not able to perform a migration. Please contact us at contact@invoiceninja.com to discuss.'], 401);
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $account = CreateAccount::dispatchNow($request->all(), $request->getClientIp());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $company = $account->companies->first();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $company_token = CompanyToken::where('user_id', auth()->user()->id)
 | 
				
			||||||
 | 
					                                     ->where('company_id', $company->id)
 | 
				
			||||||
 | 
					                                     ->first();         
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return response()->json(['token' => $company_token->token], 200);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -46,7 +46,8 @@ class CreateAccountRequest extends Request
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected function prepareForValidation()
 | 
					    protected function prepareForValidation()
 | 
				
			||||||
    {nlog($this->all());
 | 
					    {
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        $input = $this->all();
 | 
					        $input = $this->all();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $input['user_agent'] = request()->server('HTTP_USER_AGENT');
 | 
					        $input['user_agent'] = request()->server('HTTP_USER_AGENT');
 | 
				
			||||||
 | 
				
			|||||||
@ -58,7 +58,7 @@ class CreateUser
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $user = new User();
 | 
					        $user = new User();
 | 
				
			||||||
        $user->account_id = $this->account->id;
 | 
					        $user->account_id = $this->account->id;
 | 
				
			||||||
        $user->password = bcrypt($this->request['password']);
 | 
					        $user->password = $this->request['password'] ? bcrypt($this->request['password']) : '';
 | 
				
			||||||
        $user->accepted_terms_version = config('ninja.terms_version');
 | 
					        $user->accepted_terms_version = config('ninja.terms_version');
 | 
				
			||||||
        $user->confirmation_code = $this->createDbHash(config('database.default'));
 | 
					        $user->confirmation_code = $this->createDbHash(config('database.default'));
 | 
				
			||||||
        $user->fill($this->request);
 | 
					        $user->fill($this->request);
 | 
				
			||||||
 | 
				
			|||||||
@ -319,6 +319,12 @@ class Import implements ShouldQueue
 | 
				
			|||||||
        $account = $this->company->account;
 | 
					        $account = $this->company->account;
 | 
				
			||||||
        $account->fill($data);
 | 
					        $account->fill($data);
 | 
				
			||||||
        $account->save();
 | 
					        $account->save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //Prevent hosted users being pushed into a trial
 | 
				
			||||||
 | 
					        if(Ninja::isHosted() && $account->plan != ''){
 | 
				
			||||||
 | 
					            $account->trial_plan = '';
 | 
				
			||||||
 | 
					            $account->save();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -424,6 +430,9 @@ class Import implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private function transformCompanyData(array $data): array
 | 
					    private function transformCompanyData(array $data): array
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        nlog("pre transformed");
 | 
				
			||||||
 | 
					        nlog($data['settings']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $company_settings = CompanySettings::defaults();
 | 
					        $company_settings = CompanySettings::defaults();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (array_key_exists('settings', $data)) {
 | 
					        if (array_key_exists('settings', $data)) {
 | 
				
			||||||
@ -445,6 +454,9 @@ class Import implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            $data['settings'] = $company_settings;
 | 
					            $data['settings'] = $company_settings;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        nlog("transformed Settings");
 | 
				
			||||||
 | 
					        nlog($data['settings']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $data;
 | 
					        return $data;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -526,7 +538,7 @@ class Import implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            $user = $user_repository->save($modified, $this->fetchUser($resource['email']), true, true);
 | 
					            $user = $user_repository->save($modified, $this->fetchUser($resource['email']), true, true);
 | 
				
			||||||
            $user->email_verified_at = now();
 | 
					            $user->email_verified_at = now();
 | 
				
			||||||
            $user->confirmation_code = '';
 | 
					            // $user->confirmation_code = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if($modified['deleted_at'])
 | 
					            if($modified['deleted_at'])
 | 
				
			||||||
                $user->deleted_at = now();
 | 
					                $user->deleted_at = now();
 | 
				
			||||||
@ -560,6 +572,7 @@ class Import implements ShouldQueue
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $model_query = $model::where($column, $value)
 | 
					        $model_query = $model::where($column, $value)
 | 
				
			||||||
                             ->where('company_id', $this->company->id)
 | 
					                             ->where('company_id', $this->company->id)
 | 
				
			||||||
 | 
					                             ->withTrashed()
 | 
				
			||||||
                             ->exists();
 | 
					                             ->exists();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if($model_query)
 | 
					        if($model_query)
 | 
				
			||||||
 | 
				
			|||||||
@ -93,6 +93,7 @@ class Invoice extends BaseModel
 | 
				
			|||||||
        'exchange_rate',
 | 
					        'exchange_rate',
 | 
				
			||||||
        'subscription_id',
 | 
					        'subscription_id',
 | 
				
			||||||
        'auto_bill_enabled',
 | 
					        'auto_bill_enabled',
 | 
				
			||||||
 | 
					        'uses_inclusive_taxes',
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected $casts = [
 | 
					    protected $casts = [
 | 
				
			||||||
 | 
				
			|||||||
@ -205,5 +205,6 @@ Route::match(['get', 'post'], 'payment_notification_webhook/{company_key}/{compa
 | 
				
			|||||||
Route::post('api/v1/postmark_webhook', 'PostMarkController@webhook');
 | 
					Route::post('api/v1/postmark_webhook', 'PostMarkController@webhook');
 | 
				
			||||||
Route::get('token_hash_router', 'OneTimeTokenController@router');
 | 
					Route::get('token_hash_router', 'OneTimeTokenController@router');
 | 
				
			||||||
Route::get('webcron', 'WebCronController@index');
 | 
					Route::get('webcron', 'WebCronController@index');
 | 
				
			||||||
 | 
					Route::post('api/v1/get_migration_account', 'HostedMigrationController@getAccount')->middleware('guest');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Route::fallback('BaseController@notFound');
 | 
					Route::fallback('BaseController@notFound');
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user