Add projects to invoice list
This commit is contained in:
parent
435bb8e999
commit
db73210904
|
|
@ -150,7 +150,8 @@ class CreditFilters extends QueryFilters
|
||||||
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'credits.client_id'), $dir);
|
->whereColumn('clients.id', 'credits.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -287,11 +287,20 @@ class InvoiceFilters extends QueryFilters
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
|
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'invoices.client_id'), $dir);
|
->whereColumn('clients.id', 'invoices.client_id'), $dir);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($sort_col[0] == 'project_id') {
|
||||||
|
|
||||||
|
return $this->builder->orderByRaw('ISNULL(project_id), project_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Project::select('name')
|
||||||
|
->whereColumn('projects.id', 'invoices.project_id'), $dir);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if ($sort_col[0] == 'number') {
|
if ($sort_col[0] == 'number') {
|
||||||
return $this->builder->orderByRaw("REGEXP_REPLACE(invoices.number,'[^0-9]+','')+0 " . $dir);
|
return $this->builder->orderByRaw("REGEXP_REPLACE(invoices.number,'[^0-9]+','')+0 " . $dir);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,8 @@ class PaymentFilters extends QueryFilters
|
||||||
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'payments.client_id'), $dir);
|
->whereColumn('clients.id', 'payments.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,8 @@ class ProjectFilters extends QueryFilters
|
||||||
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'projects.client_id'), $dir);
|
->whereColumn('clients.id', 'projects.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,8 @@ class QuoteFilters extends QueryFilters
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'quotes.client_id'), $dir);
|
->whereColumn('clients.id', 'quotes.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,8 @@ class RecurringInvoiceFilters extends QueryFilters
|
||||||
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'recurring_invoices.client_id'), $dir);
|
->whereColumn('clients.id', 'recurring_invoices.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,12 +138,14 @@ class TaskFilters extends QueryFilters
|
||||||
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
$dir = ($sort_col[1] == 'asc') ? 'asc' : 'desc';
|
||||||
|
|
||||||
if ($sort_col[0] == 'client_id') {
|
if ($sort_col[0] == 'client_id') {
|
||||||
return $this->builder->orderBy(\App\Models\Client::select('name')
|
return $this->builder->orderByRaw('ISNULL(client_id), client_id '. $dir)
|
||||||
|
->orderBy(\App\Models\Client::select('name')
|
||||||
->whereColumn('clients.id', 'tasks.client_id'), $dir);
|
->whereColumn('clients.id', 'tasks.client_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sort_col[0] == 'user_id') {
|
if ($sort_col[0] == 'user_id') {
|
||||||
return $this->builder->orderBy(\App\Models\User::select('first_name')
|
return $this->builder->orderByRaw('ISNULL(user_id), user_id '. $dir)
|
||||||
|
->orderBy(\App\Models\User::select('first_name')
|
||||||
->whereColumn('users.id', 'tasks.user_id'), $dir);
|
->whereColumn('users.id', 'tasks.user_id'), $dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,15 +12,16 @@
|
||||||
|
|
||||||
namespace App\Transformers;
|
namespace App\Transformers;
|
||||||
|
|
||||||
use App\Models\Activity;
|
|
||||||
use App\Models\Backup;
|
use App\Models\Backup;
|
||||||
use App\Models\Client;
|
use App\Models\Client;
|
||||||
use App\Models\Credit;
|
use App\Models\Credit;
|
||||||
use App\Models\Document;
|
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
use App\Models\InvoiceInvitation;
|
|
||||||
use App\Models\Payment;
|
use App\Models\Payment;
|
||||||
|
use App\Models\Project;
|
||||||
|
use App\Models\Activity;
|
||||||
|
use App\Models\Document;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
|
use App\Models\InvoiceInvitation;
|
||||||
|
|
||||||
class InvoiceTransformer extends EntityTransformer
|
class InvoiceTransformer extends EntityTransformer
|
||||||
{
|
{
|
||||||
|
|
@ -36,6 +37,7 @@ class InvoiceTransformer extends EntityTransformer
|
||||||
'client',
|
'client',
|
||||||
'activities',
|
'activities',
|
||||||
'location',
|
'location',
|
||||||
|
'project',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function includeLocation(Invoice $invoice)
|
public function includeLocation(Invoice $invoice)
|
||||||
|
|
@ -70,6 +72,17 @@ class InvoiceTransformer extends EntityTransformer
|
||||||
return $this->includeItem($invoice->client, $transformer, Client::class);
|
return $this->includeItem($invoice->client, $transformer, Client::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function includeProject(Invoice $invoice)
|
||||||
|
{
|
||||||
|
$transformer = new ProjectTransformer($this->serializer);
|
||||||
|
|
||||||
|
if (!$invoice->project) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->includeItem($invoice->project, $transformer, Project::class);
|
||||||
|
}
|
||||||
|
|
||||||
public function includePayments(Invoice $invoice)
|
public function includePayments(Invoice $invoice)
|
||||||
{
|
{
|
||||||
$transformer = new PaymentTransformer($this->serializer);
|
$transformer = new PaymentTransformer($this->serializer);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue