mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Improve notification performance (#3452)
* Improve notification performance * Cascade deletes * Fixes for company deletes * Fixes for formatting * todos for company * Set currency id on payment * Minor fixes for payment controller
This commit is contained in:
parent
a8c15ef1c9
commit
37f295d49e
@ -488,6 +488,7 @@ class CreateTestData extends Command
|
||||
$payment->type_id = PaymentType::CREDIT_CARD_OTHER;
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->number = $client->getNextPaymentNumber($client);
|
||||
$payment->currency_id = 1;
|
||||
$payment->save();
|
||||
|
||||
$payment->invoices()->save($invoice);
|
||||
|
@ -108,6 +108,7 @@ class CreateTestInvoiceJob implements ShouldQueue
|
||||
$payment->type_id = PaymentType::CREDIT_CARD_OTHER;
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->number = $this->client->getNextPaymentNumber($this->client);
|
||||
$payment->currency_id = 1;
|
||||
$payment->save();
|
||||
|
||||
$payment->invoices()->save($invoice);
|
||||
|
@ -459,12 +459,43 @@ class CompanyController extends BaseController
|
||||
*/
|
||||
public function destroy(DestroyCompanyRequest $request, Company $company)
|
||||
{
|
||||
$company_count = $company->account->companies->count();
|
||||
|
||||
$company->delete();
|
||||
|
||||
//@TODO if last company, delete the account also.
|
||||
|
||||
return response()->json([], 200);
|
||||
if($company_count == 1){
|
||||
|
||||
$company->company_users->each(function ($company_user) {
|
||||
|
||||
$company_user->user->forceDelete();
|
||||
|
||||
});
|
||||
|
||||
$company->account->delete();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
$account = $company->account;
|
||||
$company_id = $company->id;
|
||||
$company->delete();
|
||||
|
||||
//If we are deleting the default companies, we'll need to make a new company the default.
|
||||
if($account->default_company == $company_id){
|
||||
|
||||
$account->fresh();
|
||||
$account->default_company = $account->companies->first()->id();
|
||||
$account->save();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//@todo delete documents also!!
|
||||
|
||||
//@todo in the hosted version deleting the last
|
||||
//account will trigger an account refund.
|
||||
|
||||
return response()->json(['message' => 'success'], 200);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -148,8 +148,6 @@ class PreviewController extends BaseController
|
||||
$invoice->setRelation('company', auth()->user()->company());
|
||||
$invoice->load('client');
|
||||
|
||||
\Log::error(print_r(request()->input('body'),1));
|
||||
|
||||
$design_object = json_decode(request()->input('body'));
|
||||
|
||||
if(!is_object($design_object))
|
||||
|
@ -13,6 +13,7 @@ namespace App\Http\Controllers;
|
||||
|
||||
use Codedge\Updater\UpdaterManager;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class SelfUpdateController extends BaseController
|
||||
{
|
||||
@ -61,18 +62,14 @@ class SelfUpdateController extends BaseController
|
||||
$res = $updater->update();
|
||||
|
||||
return response()->json(['message'=>$res], 200);
|
||||
|
||||
}
|
||||
|
||||
public function checkVersion(UpdaterManager $updater)
|
||||
{
|
||||
|
||||
$file_version = storage_path().'app/local_version.txt';
|
||||
|
||||
if(file_exists($file_version)){
|
||||
return response()->json(['message' => file_get_contents($file_version)]);
|
||||
}else{
|
||||
return response()->json(['message' => '0.0.0']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Jobs\Util;
|
||||
|
||||
use App\Utils\Traits\BulkOptions;
|
||||
use App\Models\Account;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
@ -14,7 +14,6 @@ class VersionCheck implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
@ -27,15 +26,11 @@ class VersionCheck implements ShouldQueue
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
//$local_version = storage_path() . '/app/local_version.txt';
|
||||
$local_version = 'local_version.txt';
|
||||
|
||||
$version_file = file_get_contents(config('ninja.version_url'));
|
||||
|
||||
if(Storage::exists($local_version));
|
||||
Storage::delete($local_version);
|
||||
|
||||
Storage::disk('local')->put('local_version.txt', $version_file);
|
||||
if($version_file)
|
||||
Account::whereNotNull('id')->update(['latest_version' => $version_file]);
|
||||
|
||||
}
|
||||
|
||||
|
@ -5,13 +5,17 @@ namespace App\Notifications\Ninja;
|
||||
use App\Mail\Signup\NewSignup;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Messages\SlackMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
class NewAccountCreated extends Notification implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
|
@ -267,6 +267,7 @@ class BasePaymentDriver
|
||||
$payment->client_id = $this->client->id;
|
||||
$payment->company_gateway_id = $this->company_gateway->id;
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->currency_id = $this->client->getSetting('currency_id');
|
||||
$payment->date = Carbon::now();
|
||||
|
||||
return $payment;
|
||||
|
@ -50,6 +50,7 @@ class MarkPaid extends AbstractService
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->client_id = $this->invoice->client_id;
|
||||
$payment->transaction_reference = ctrans('texts.manual_entry');
|
||||
$payment->currency_id = $this->invoice->client->getSetting('currency_id');
|
||||
/* Create a payment relationship to the invoice entity */
|
||||
$payment->save();
|
||||
|
||||
|
@ -35,6 +35,7 @@ class PaymentService
|
||||
$payment->status_id = Payment::STATUS_COMPLETED;
|
||||
$payment->client_id = $invoice->client_id;
|
||||
$payment->transaction_reference = ctrans('texts.manual_entry');
|
||||
$payment->currency_id = $invoice->client->getSetting('currency_id');
|
||||
/* Create a payment relationship to the invoice entity */
|
||||
$payment->save();
|
||||
|
||||
|
@ -60,6 +60,7 @@ class AccountTransformer extends EntityTransformer
|
||||
'id' => (string)$this->encodePrimaryKey($account->id),
|
||||
'default_url' => config('ninja.site_url'),
|
||||
'plan' => $account->getPlan(),
|
||||
'latest_version' => (string)$account->latest_version,
|
||||
'updated_at' => (int)$account->updated_at,
|
||||
'archived_at' => (int)$account->deleted_at,
|
||||
];
|
||||
|
@ -7,7 +7,7 @@ return [
|
||||
'production' => env('NINJA_PROD', false),
|
||||
'license' => env('NINJA_LICENSE', ''),
|
||||
'app_name' => env('APP_NAME'),
|
||||
'version_url' => 'https://github.com/invoiceninja/invoiceninja/tree/v2/VERSION.txt',
|
||||
'version_url' => 'https://raw.githubusercontent.com/invoiceninja/invoiceninja/v2/VERSION.txt',
|
||||
'site_url' => env('APP_URL', ''),
|
||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||
'app_version' => '0.0.1',
|
||||
|
@ -127,6 +127,7 @@ class CreateUsersTable extends Migration
|
||||
$table->string('utm_campaign')->nullable();
|
||||
$table->string('utm_term')->nullable();
|
||||
$table->string('utm_content')->nullable();
|
||||
$table->string('latest_version')->default('0.0.0');
|
||||
|
||||
$table->float('discount')->default(0);
|
||||
$table->date('discount_expires')->nullable();
|
||||
|
Loading…
x
Reference in New Issue
Block a user