- Client list

- Context menu
This commit is contained in:
Peter Papp
2021-04-22 07:36:52 +02:00
parent eae212ac5d
commit 4b0e4da013
23 changed files with 724 additions and 75 deletions
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Oasis;
use App\Http\Controllers\Controller;
use App\Http\Resources\Oasis\OasisClientCollection;
use Auth;
use Illuminate\Http\Request;
@@ -13,6 +14,8 @@ class ClientController extends Controller
*/
public function index()
{
return response(Auth::user()->clients, 200);
return response(
new OasisClientCollection(Auth::user()->clients), 200
);
}
}
@@ -14,7 +14,9 @@ class InvoiceController extends Controller
*/
public function get_all_regular_invoices()
{
return response(new OasisInvoiceCollection(Auth::user()->regularInvoices), 200);
return response(
new OasisInvoiceCollection(Auth::user()->regularInvoices), 200
);
}
/**
@@ -22,6 +24,8 @@ class InvoiceController extends Controller
*/
public function get_all_advance_invoices()
{
return response(new OasisInvoiceCollection(Auth::user()->advanceInvoices), 200);
return response(
new OasisInvoiceCollection(Auth::user()->advanceInvoices), 200
);
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Resources\Oasis;
use Illuminate\Http\Resources\Json\ResourceCollection;
class OasisClientCollection extends ResourceCollection
{
public $collects = OasisClientResource::class;
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Support\Collection
*/
public function toArray($request)
{
return $this->collection;
}
}
@@ -0,0 +1,36 @@
<?php
namespace App\Http\Resources\Oasis;
use Illuminate\Http\Resources\Json\JsonResource;
class OasisClientResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$total_net = \DB::table('invoices')
->whereClientId($this->id)
->sum('total_net');
$total_invoices = \DB::table('invoices')
->whereClientId($this->id)
->count();
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'avatar' => url('/assets/images/default-avatar.png'),
'totalNet' => format_to_currency($total_net, 'CZK'),
'totalInvoices' => $total_invoices,
'type' => 'client',
'created_at' => format_date($this->created_at, '%d. %B. %Y'),
];
}
}
@@ -22,6 +22,7 @@ class OasisInvoiceResource extends JsonResource
'file_url' => '',
'clientName' => $this->client['name'],
'mimetype' => 'pdf',
'type' => 'invoice',
'created_at' => format_date($this->created_at, '%d. %B. %Y'),
];
}