Fixes for yodlee

This commit is contained in:
David Bomba 2023-08-09 18:29:33 +10:00
parent 60b8402d76
commit 22d5f6e4f0
5 changed files with 84 additions and 47 deletions

View File

@ -11,30 +11,31 @@
namespace App\Http\Controllers;
use App\Events\Client\ClientWasCreated;
use App\Events\Client\ClientWasUpdated;
use App\Utils\Ninja;
use App\Models\Client;
use App\Models\Account;
use Illuminate\Http\Response;
use App\Factory\ClientFactory;
use App\Filters\ClientFilters;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\Uploadable;
use App\Utils\Traits\BulkOptions;
use App\Jobs\Client\UpdateTaxData;
use App\Utils\Traits\SavesDocuments;
use App\Repositories\ClientRepository;
use App\Events\Client\ClientWasCreated;
use App\Events\Client\ClientWasUpdated;
use App\Transformers\ClientTransformer;
use Illuminate\Support\Facades\Storage;
use App\Http\Requests\Client\BulkClientRequest;
use App\Http\Requests\Client\CreateClientRequest;
use App\Http\Requests\Client\DestroyClientRequest;
use App\Http\Requests\Client\EditClientRequest;
use App\Http\Requests\Client\PurgeClientRequest;
use App\Http\Requests\Client\ShowClientRequest;
use App\Http\Requests\Client\PurgeClientRequest;
use App\Http\Requests\Client\StoreClientRequest;
use App\Http\Requests\Client\CreateClientRequest;
use App\Http\Requests\Client\UpdateClientRequest;
use App\Http\Requests\Client\UploadClientRequest;
use App\Models\Account;
use App\Models\Client;
use App\Repositories\ClientRepository;
use App\Transformers\ClientTransformer;
use App\Utils\Ninja;
use App\Utils\Traits\BulkOptions;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\SavesDocuments;
use App\Utils\Traits\Uploadable;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
use App\Http\Requests\Client\DestroyClientRequest;
/**
* Class ClientController.
@ -285,4 +286,18 @@ class ClientController extends BaseController
return $this->itemResponse($merged_client);
}
/**
* Updates the client's tax data
*
* @param PurgeClientRequest $request
* @param Client $client
* @return \Illuminate\Http\JsonResponse
*/
public function updateTaxData(PurgeClientRequest $request, Client $client)
{
(new UpdateTaxData($client, $client->company))->handle();
return $this->itemResponse($client->fresh());
}
}

View File

@ -11,38 +11,39 @@
namespace App\Http\Controllers;
use App\DataMapper\Analytics\AccountDeleted;
use App\DataMapper\CompanySettings;
use App\Http\Requests\Company\CreateCompanyRequest;
use App\Http\Requests\Company\DefaultCompanyRequest;
use App\Http\Requests\Company\DestroyCompanyRequest;
use App\Http\Requests\Company\EditCompanyRequest;
use App\Http\Requests\Company\ShowCompanyRequest;
use App\Http\Requests\Company\StoreCompanyRequest;
use App\Http\Requests\Company\UpdateCompanyRequest;
use App\Http\Requests\Company\UploadCompanyRequest;
use App\Jobs\Company\CreateCompany;
use App\Jobs\Company\CreateCompanyPaymentTerms;
use App\Jobs\Company\CreateCompanyTaskStatuses;
use App\Jobs\Company\CreateCompanyToken;
use App\Jobs\Mail\NinjaMailerJob;
use App\Jobs\Mail\NinjaMailerObject;
use App\Mail\Company\CompanyDeleted;
use Str;
use App\Utils\Ninja;
use App\Models\Account;
use App\Models\Company;
use App\Models\CompanyUser;
use App\Repositories\CompanyRepository;
use App\Transformers\CompanyTransformer;
use App\Transformers\CompanyUserTransformer;
use App\Utils\Ninja;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\SavesDocuments;
use App\Utils\Traits\Uploadable;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Storage;
use Str;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\Uploadable;
use App\Jobs\Mail\NinjaMailerJob;
use App\DataMapper\CompanySettings;
use App\Jobs\Company\CreateCompany;
use App\Jobs\Company\CompanyTaxRate;
use App\Jobs\Mail\NinjaMailerObject;
use App\Mail\Company\CompanyDeleted;
use App\Utils\Traits\SavesDocuments;
use Turbo124\Beacon\Facades\LightLogs;
use App\Repositories\CompanyRepository;
use Illuminate\Support\Facades\Storage;
use App\Jobs\Company\CreateCompanyToken;
use App\Transformers\CompanyTransformer;
use App\DataMapper\Analytics\AccountDeleted;
use App\Transformers\CompanyUserTransformer;
use Illuminate\Foundation\Bus\DispatchesJobs;
use App\Jobs\Company\CreateCompanyPaymentTerms;
use App\Jobs\Company\CreateCompanyTaskStatuses;
use App\Http\Requests\Company\EditCompanyRequest;
use App\Http\Requests\Company\ShowCompanyRequest;
use App\Http\Requests\Company\StoreCompanyRequest;
use App\Http\Requests\Company\CreateCompanyRequest;
use App\Http\Requests\Company\UpdateCompanyRequest;
use App\Http\Requests\Company\UploadCompanyRequest;
use App\Http\Requests\Company\DefaultCompanyRequest;
use App\Http\Requests\Company\DestroyCompanyRequest;
/**
* Class CompanyController.
@ -679,4 +680,21 @@ class CompanyController extends BaseController
return $this->itemResponse($company->fresh());
}
public function updateOriginTaxData(DefaultCompanyRequest $request, Company $company)
{
if($company->settings->country_id == "840" && !$company?->account->isFreeHostedClient())
{
try {
(new CompanyTaxRate($company))->handle();
} catch(\Exception $e) {
return response()->json(['message' => 'There was a problem updating the tax rates. Please try again.'], 400);
}
}
else
return response()->json(['message' => 'Tax configuration not available due to settings / plan restriction.'], 400);
return $this->itemResponse($company->fresh());
}
}

View File

@ -22,7 +22,10 @@ class DefaultCompanyRequest extends Request
*/
public function authorize() : bool
{
return auth()->user()->isAdmin();
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->isAdmin();
}
public function rules()

View File

@ -109,8 +109,8 @@ class ProcessBankTransactions implements ShouldQueue
$account = $at->transform($account_summary);
if($account[0]['current_balance']) {
$this->bank_integration->balance = $account['current_balance'];
$this->bank_integration->currency = $account['account_currency'];
$this->bank_integration->balance = $account[0]['current_balance'];
$this->bank_integration->currency = $account[0]['account_currency'];
$this->bank_integration->save();
}

View File

@ -157,6 +157,7 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
Route::resource('clients', ClientController::class); // name = (clients. index / create / show / update / destroy / edit
Route::put('clients/{client}/upload', [ClientController::class, 'upload'])->name('clients.upload');
Route::post('clients/{client}/purge', [ClientController::class, 'purge'])->name('clients.purge')->middleware('password_protected');
Route::post('clients/{client}/updateTaxData', [ClientController::class, 'updateTaxData'])->name('clients.purge')->middleware('throttle:3,1');
Route::post('clients/{client}/{mergeable_client}/merge', [ClientController::class, 'merge'])->name('clients.merge')->middleware('password_protected');
Route::post('clients/bulk', [ClientController::class, 'bulk'])->name('clients.bulk');
@ -171,11 +172,11 @@ Route::group(['middleware' => ['throttle:api', 'api_db', 'token_auth', 'locale']
Route::post('companies/purge/{company}', [MigrationController::class, 'purgeCompany'])->middleware('password_protected');
Route::post('companies/purge_save_settings/{company}', [MigrationController::class, 'purgeCompanySaveSettings'])->middleware('password_protected');
Route::resource('companies', CompanyController::class); // name = (companies. index / create / show / update / destroy / edit
Route::put('companies/{company}/upload', [CompanyController::class, 'upload']);
Route::post('companies/{company}/default', [CompanyController::class, 'default']);
Route::post('companies/updateOriginTaxData/{company}', [CompanyController::class, 'updateOriginTaxData'])->middleware('throttle:3,1');
Route::get('company_ledger', [CompanyLedgerController::class, 'index'])->name('company_ledger.index');