1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-16 08:02:40 +01:00

Merge branch 'v5-develop' into v5-stable

This commit is contained in:
David Bomba 2021-07-04 07:56:08 +10:00
commit 12ced963e1
12 changed files with 52 additions and 34 deletions

View File

@ -1 +1 @@
5.2.7 5.2.10

View File

@ -234,38 +234,38 @@ class CheckData extends Command
} }
} }
// check for more than one primary contact // // check for more than one primary contact
$clients = DB::table('clients') // $clients = DB::table('clients')
->leftJoin('client_contacts', function ($join) { // ->leftJoin('client_contacts', function ($join) {
$join->on('client_contacts.client_id', '=', 'clients.id') // $join->on('client_contacts.client_id', '=', 'clients.id')
->where('client_contacts.is_primary', '=', true) // ->where('client_contacts.is_primary', '=', true)
->whereNull('client_contacts.deleted_at'); // ->whereNull('client_contacts.deleted_at');
}) // })
->groupBy('clients.id') // ->groupBy('clients.id')
->havingRaw('count(client_contacts.id) != 1'); // ->havingRaw('count(client_contacts.id) != 1');
if ($this->option('client_id')) { // if ($this->option('client_id')) {
$clients->where('clients.id', '=', $this->option('client_id')); // $clients->where('clients.id', '=', $this->option('client_id'));
} // }
$clients = $clients->get(['clients.id', 'clients.user_id', 'clients.company_id']); // $clients = $clients->get(['clients.id', 'clients.user_id', 'clients.company_id']);
$this->logMessage($clients->count().' clients without a single primary contact'); // // $this->logMessage($clients->count().' clients without a single primary contact');
if ($this->option('fix') == 'true') { // // if ($this->option('fix') == 'true') {
foreach ($clients as $client) { // // foreach ($clients as $client) {
$this->logMessage("Fixing missing primary contacts #{$client->id}"); // // $this->logMessage("Fixing missing primary contacts #{$client->id}");
$new_contact = ClientContactFactory::create($client->company_id, $client->user_id); // // $new_contact = ClientContactFactory::create($client->company_id, $client->user_id);
$new_contact->client_id = $client->id; // // $new_contact->client_id = $client->id;
$new_contact->contact_key = Str::random(40); // // $new_contact->contact_key = Str::random(40);
$new_contact->is_primary = true; // // $new_contact->is_primary = true;
$new_contact->save(); // // $new_contact->save();
} // // }
} // // }
if ($clients->count() > 0) { // if ($clients->count() > 0) {
$this->isValid = false; // $this->isValid = false;
} // }
} }
private function checkFailedJobs() private function checkFailedJobs()

View File

@ -34,11 +34,15 @@ class CreditsTable extends Component
public function render() public function render()
{ {
$query = Credit::query() $query = Credit::query()
->where('client_id', auth('contact')->user()->client->id) ->where('client_id', auth('contact')->user()->client->id)
->where('company_id', $this->company->id)
->where('status_id', '<>', Credit::STATUS_DRAFT) ->where('status_id', '<>', Credit::STATUS_DRAFT)
->whereDate('due_date', '<=', now()) ->where(function ($query){
->orWhere('due_date', NULL) $query->whereDate('due_date', '<=', now())
->orWhereNull('due_date');
})
->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc')
->paginate($this->per_page); ->paginate($this->per_page);

View File

@ -44,6 +44,7 @@ class InvoicesTable extends Component
$query = Invoice::query() $query = Invoice::query()
->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc')
->where('company_id', $this->company->id)
->where('is_deleted', false); ->where('is_deleted', false);
if (in_array('paid', $this->status)) { if (in_array('paid', $this->status)) {

View File

@ -34,6 +34,7 @@ class PaymentMethodsTable extends Component
{ {
$query = ClientGatewayToken::query() $query = ClientGatewayToken::query()
->with('gateway_type') ->with('gateway_type')
->where('company_id', $this->company->id)
->where('client_id', $this->client->id) ->where('client_id', $this->client->id)
->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc')
->paginate($this->per_page); ->paginate($this->per_page);

View File

@ -41,6 +41,7 @@ class PaymentsTable extends Component
{ {
$query = Payment::query() $query = Payment::query()
->with('type', 'client') ->with('type', 'client')
->where('company_id', $this->company->id)
->where('client_id', auth('contact')->user()->client->id) ->where('client_id', auth('contact')->user()->client->id)
->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc')
->paginate($this->per_page); ->paginate($this->per_page);

View File

@ -45,6 +45,7 @@ class QuotesTable extends Component
} }
$query = $query $query = $query
->where('company_id', $this->company->id)
->where('client_id', auth('contact')->user()->client->id) ->where('client_id', auth('contact')->user()->client->id)
->where('status_id', '<>', Quote::STATUS_DRAFT) ->where('status_id', '<>', Quote::STATUS_DRAFT)
->paginate($this->per_page); ->paginate($this->per_page);

View File

@ -12,6 +12,7 @@
namespace App\Http\Livewire; namespace App\Http\Livewire;
use App\Libraries\MultiDB;
use App\Models\RecurringInvoice; use App\Models\RecurringInvoice;
use App\Utils\Traits\WithSorting; use App\Utils\Traits\WithSorting;
use Livewire\Component; use Livewire\Component;
@ -23,8 +24,12 @@ class RecurringInvoicesTable extends Component
public $per_page = 10; public $per_page = 10;
public $company;
public function mount() public function mount()
{ {
MultiDB::setDb($this->company->db);
$this->sort_asc = false; $this->sort_asc = false;
$this->sort_field = 'date'; $this->sort_field = 'date';
@ -36,6 +41,7 @@ class RecurringInvoicesTable extends Component
$query = $query $query = $query
->where('client_id', auth('contact')->user()->client->id) ->where('client_id', auth('contact')->user()->client->id)
->where('company_id', $this->company->id)
->whereIn('status_id', [RecurringInvoice::STATUS_PENDING, RecurringInvoice::STATUS_ACTIVE, RecurringInvoice::STATUS_PAUSED,RecurringInvoice::STATUS_COMPLETED]) ->whereIn('status_id', [RecurringInvoice::STATUS_PENDING, RecurringInvoice::STATUS_ACTIVE, RecurringInvoice::STATUS_PAUSED,RecurringInvoice::STATUS_COMPLETED])
->orderBy('status_id', 'asc') ->orderBy('status_id', 'asc')
->with('client') ->with('client')

View File

@ -36,6 +36,7 @@ class SubscriptionRecurringInvoicesTable extends Component
{ {
$query = RecurringInvoice::query() $query = RecurringInvoice::query()
->where('client_id', auth('contact')->user()->client->id) ->where('client_id', auth('contact')->user()->client->id)
->where('company_id', $this->company->id)
->whereNotNull('subscription_id') ->whereNotNull('subscription_id')
->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc')
->paginate($this->per_page); ->paginate($this->per_page);

View File

@ -35,6 +35,7 @@ class TasksTable extends Component
public function render() public function render()
{ {
$query = Task::query() $query = Task::query()
->where('company_id', $this->company->id)
->where('client_id', auth('contact')->user()->client->id); ->where('client_id', auth('contact')->user()->client->id);
if ($this->company->getSetting('show_all_tasks_client_portal') === 'invoiced') { if ($this->company->getSetting('show_all_tasks_client_portal') === 'invoiced') {

View File

@ -51,8 +51,10 @@ class ClientService
$credits = $this->client->credits() $credits = $this->client->credits()
->where('is_deleted', false) ->where('is_deleted', false)
->where('balance', '>', 0) ->where('balance', '>', 0)
->whereDate('due_date', '<=', now()->format('Y-m-d')) ->where(function ($query){
->orWhere('due_date', NULL) $query->whereDate('due_date', '<=', now()->format('Y-m-d'))
->orWhereNull('due_date');
})
->orderBy('created_at','ASC'); ->orderBy('created_at','ASC');
return Number::roundValue($credits->sum('balance'), $this->client->currency()->precision); return Number::roundValue($credits->sum('balance'), $this->client->currency()->precision);

View File

@ -14,8 +14,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true), 'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
'app_version' => '5.2.9', 'app_version' => '5.2.10',
'app_tag' => '5.2.9', 'app_tag' => '5.2.10',
'minimum_client_version' => '5.0.16', 'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1', 'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', ''), 'api_secret' => env('API_SECRET', ''),