mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-06 02:33:48 +00:00
Resource refactoring
This commit is contained in:
@@ -3,9 +3,10 @@
|
||||
namespace App\Http\Controllers\Oasis;
|
||||
|
||||
use App\Http\Requests\Oasis\StoreClientRequest;
|
||||
use App\Http\Resources\Oasis\OasisClientCollection;
|
||||
use App\Http\Resources\Oasis\OasisViewClientCollection;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\Oasis\OasisClientResource;
|
||||
use App\Http\Resources\Oasis\OasisViewClientResource;
|
||||
use App\Http\Resources\Oasis\OasisViewInvoiceCollection;
|
||||
use App\Models\Oasis\Client;
|
||||
use Auth;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
@@ -21,7 +22,7 @@ class ClientController extends Controller
|
||||
public function index()
|
||||
{
|
||||
return response(
|
||||
new OasisClientCollection(Auth::user()->clients), 200
|
||||
new OasisViewClientCollection(Auth::user()->clients), 200
|
||||
);
|
||||
}
|
||||
|
||||
@@ -48,7 +49,7 @@ class ClientController extends Controller
|
||||
]);
|
||||
|
||||
return response(
|
||||
new OasisClientResource($client), 201
|
||||
new OasisViewClientResource($client), 201
|
||||
);
|
||||
}
|
||||
|
||||
@@ -58,7 +59,7 @@ class ClientController extends Controller
|
||||
*/
|
||||
public function show(Client $client)
|
||||
{
|
||||
return response(new OasisClientResource($client), 200);
|
||||
return response(new OasisViewClientResource($client), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,6 +98,15 @@ class ClientController extends Controller
|
||||
return response('Done', 204);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Client $client
|
||||
* @return Application|ResponseFactory|Response
|
||||
*/
|
||||
public function show_invoices(Client $client)
|
||||
{
|
||||
return response(new OasisViewInvoiceCollection($client->invoices), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
@@ -109,7 +119,7 @@ class ClientController extends Controller
|
||||
->get();
|
||||
|
||||
return response(
|
||||
new OasisClientCollection($results), 200
|
||||
new OasisViewClientCollection($results), 200
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Oasis;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Oasis\StoreInvoiceRequest;
|
||||
use App\Http\Resources\Oasis\OasisInvoiceCollection;
|
||||
use App\Http\Resources\Oasis\OasisInvoiceResource;
|
||||
use App\Http\Resources\Oasis\OasisViewInvoiceCollection;
|
||||
use App\Http\Resources\Oasis\OasisViewInvoiceResource;
|
||||
use App\Models\Oasis\Client;
|
||||
use App\Models\Oasis\Invoice;
|
||||
use App\Notifications\Oasis\InvoiceDeliveryNotification;
|
||||
@@ -26,7 +26,7 @@ class InvoiceController extends Controller
|
||||
public function get_all_regular_invoices()
|
||||
{
|
||||
return response(
|
||||
new OasisInvoiceCollection(Auth::user()->regularInvoices), 200
|
||||
new OasisViewInvoiceCollection(Auth::user()->regularInvoices), 200
|
||||
);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class InvoiceController extends Controller
|
||||
public function get_all_advance_invoices()
|
||||
{
|
||||
return response(
|
||||
new OasisInvoiceCollection(Auth::user()->advanceInvoices), 200
|
||||
new OasisViewInvoiceCollection(Auth::user()->advanceInvoices), 200
|
||||
);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ class InvoiceController extends Controller
|
||||
->get();
|
||||
|
||||
return response(
|
||||
new OasisInvoiceCollection($results), 200
|
||||
new OasisViewInvoiceCollection($results), 200
|
||||
);
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ class InvoiceController extends Controller
|
||||
}
|
||||
|
||||
return response(
|
||||
new OasisInvoiceResource($invoice), 201
|
||||
new OasisViewInvoiceResource($invoice), 201
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ namespace App\Http\Resources\Oasis;
|
||||
|
||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||
|
||||
class OasisClientCollection extends ResourceCollection
|
||||
class OasisViewClientCollection extends ResourceCollection
|
||||
{
|
||||
public $collects = OasisClientResource::class;
|
||||
public $collects = OasisViewClientResource::class;
|
||||
|
||||
/**
|
||||
* Transform the resource collection into an array.
|
||||
@@ -4,7 +4,7 @@ namespace App\Http\Resources\Oasis;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class OasisClientResource extends JsonResource
|
||||
class OasisViewClientResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
@@ -4,9 +4,9 @@ namespace App\Http\Resources\Oasis;
|
||||
|
||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||
|
||||
class OasisInvoiceCollection extends ResourceCollection
|
||||
class OasisViewInvoiceCollection extends ResourceCollection
|
||||
{
|
||||
public $collects = OasisInvoiceResource::class;
|
||||
public $collects = OasisViewInvoiceResource::class;
|
||||
|
||||
/**
|
||||
* Transform the resource collection into an array.
|
||||
@@ -6,7 +6,7 @@ use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class OasisInvoiceResource extends JsonResource
|
||||
class OasisViewInvoiceResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
@@ -18,6 +18,7 @@ class OasisInvoiceResource extends JsonResource
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'client_id' => $this->client_id,
|
||||
'name' => $this->client['name'] . ' ' . format_to_currency($this->total_net, $this->currency),
|
||||
'invoiceNumber' => $this->invoice_number,
|
||||
'total' => format_to_currency($this->total_net, $this->currency),
|
||||
@@ -50,7 +50,7 @@ class Client extends Model
|
||||
|
||||
public function invoices()
|
||||
{
|
||||
return $this->hasMany(Invoice::class, 'client_id', 'id');
|
||||
return $this->hasMany(Invoice::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
1847
composer.lock
generated
1847
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -43,8 +43,8 @@
|
||||
"/chunks/files~chunks/oasis/invoices/list~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/oasis/invoices/list~chunks/shared-files~chunks/shared/file-browser.js?id=a35f0d58f42da919a182",
|
||||
"/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared~chunks/s~707bd579.js": "/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared~chunks/s~707bd579.js?id=3c49df5afaf5bb1f42f3",
|
||||
"/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared~chunks/s~87b39a8d.js": "/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared~chunks/s~87b39a8d.js?id=c226fe89b510c599615f",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=14b259c05259260985ec",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=06665bebae33953fed87",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=b16063b4c7277725485e",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=01b0782ff7a9c0bd5f5f",
|
||||
"/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=44899a3c3880630dbcd9",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=877a9289b77ac3885042",
|
||||
"/chunks/homepage.js": "/chunks/homepage.js?id=1a86b7f0efa95ad65c4a",
|
||||
@@ -52,8 +52,8 @@
|
||||
"/chunks/invoices.js": "/chunks/invoices.js?id=1deb187f6d3eb1e81ad0",
|
||||
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e",
|
||||
"/chunks/oasis/homepage.js": "/chunks/oasis/homepage.js?id=a1885dd8814f9eb63a1c",
|
||||
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=996b95c4cd43f0a6bcc1",
|
||||
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=b72362eac5928244f6fd",
|
||||
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=959a8324daa7af8a644e",
|
||||
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=290b41f70e5205491b2d",
|
||||
"/chunks/oasis/invoices~chunks/oasis/invoices/list.js": "/chunks/oasis/invoices~chunks/oasis/invoices/list.js?id=045d3dd7ce573cb7ed11",
|
||||
"/chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared.js": "/chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared.js?id=c69c0503d09d1588f14a",
|
||||
"/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=53d9f2a31b1dd5dad85e",
|
||||
@@ -351,7 +351,7 @@
|
||||
"/js/main.2a5b52cd5a8d1d56d0d8.hot-update.js": "/js/main.2a5b52cd5a8d1d56d0d8.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~dea0c278.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~dea0c278.js?id=a81252d0e451803fdcef",
|
||||
"/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~e9fdda75.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~e9fdda75.js?id=62ce022b3544cd69a5bd",
|
||||
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=6cfca92e372179ebf697",
|
||||
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=09e5ec06d67a01b449cb",
|
||||
"/chunks/oasis/invoices/client.c97bd30d932ea2b47e55.hot-update.js": "/chunks/oasis/invoices/client.c97bd30d932ea2b47e55.hot-update.js",
|
||||
"/chunks/oasis/invoices/client.5ee30b20f1f55c124785.hot-update.js": "/chunks/oasis/invoices/client.5ee30b20f1f55c124785.hot-update.js",
|
||||
"/chunks/oasis/invoices/client.773c1b1645b07a8396a3.hot-update.js": "/chunks/oasis/invoices/client.773c1b1645b07a8396a3.hot-update.js",
|
||||
@@ -417,5 +417,67 @@
|
||||
"/chunks/oasis/invoices/client-detail.c350c71f1522f9270a28.hot-update.js": "/chunks/oasis/invoices/client-detail.c350c71f1522f9270a28.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-detail.c2e95634b2714e59ac83.hot-update.js": "/chunks/oasis/invoices/client-detail.c2e95634b2714e59ac83.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-detail.3590afdbba0a7343190f.hot-update.js": "/chunks/oasis/invoices/client-detail.3590afdbba0a7343190f.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.76adce30ace314ca7046.hot-update.js": "/chunks/oasis/invoices/list.76adce30ace314ca7046.hot-update.js"
|
||||
"/chunks/oasis/invoices/list.76adce30ace314ca7046.hot-update.js": "/chunks/oasis/invoices/list.76adce30ace314ca7046.hot-update.js",
|
||||
"/js/main.949d57b42db2e54d9ef8.hot-update.js": "/js/main.949d57b42db2e54d9ef8.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.949d57b42db2e54d9ef8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.949d57b42db2e54d9ef8.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.949d57b42db2e54d9ef8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.949d57b42db2e54d9ef8.hot-update.js",
|
||||
"/js/main.0acefcdbb3ae22c7a075.hot-update.js": "/js/main.0acefcdbb3ae22c7a075.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.0acefcdbb3ae22c7a075.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.0acefcdbb3ae22c7a075.hot-update.js",
|
||||
"/chunks/oasis/invoices~chunks/platform~chunks/shared.0acefcdbb3ae22c7a075.hot-update.js": "/chunks/oasis/invoices~chunks/platform~chunks/shared.0acefcdbb3ae22c7a075.hot-update.js",
|
||||
"/vendors~chunks/oasis/invoices~chunks/platform~chunks/shared.0acefcdbb3ae22c7a075.hot-update.js": "/vendors~chunks/oasis/invoices~chunks/platform~chunks/shared.0acefcdbb3ae22c7a075.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.adefc99a839b60a22adf.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.adefc99a839b60a22adf.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.616072dbe8ace74114f6.hot-update.js": "/chunks/oasis/invoices/list.616072dbe8ace74114f6.hot-update.js",
|
||||
"/chunks/oasis/invoices.5ad7206eb392bb13647d.hot-update.js": "/chunks/oasis/invoices.5ad7206eb392bb13647d.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.698d548b849e1b05b79a.hot-update.js": "/chunks/oasis/invoices/list.698d548b849e1b05b79a.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.9a34c553ecf98d2acf32.hot-update.js": "/chunks/oasis/invoices/list.9a34c553ecf98d2acf32.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.ebe2d8f30827200af75e.hot-update.js": "/chunks/oasis/invoices/list.ebe2d8f30827200af75e.hot-update.js",
|
||||
"/js/main.b22157a399b189834e9b.hot-update.js": "/js/main.b22157a399b189834e9b.hot-update.js",
|
||||
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c245a133.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c245a133.js?id=02b690cfccbe93e8014d",
|
||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~bd242892.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~bd242892.js?id=b4113f174772fb0c55ce",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.js?id=7c1507c48bdb1e99af77",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~477d1d8f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~477d1d8f.js?id=59621032c5dcceae7e47",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~a98b1a0e.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~a98b1a0e.js?id=6bf0e1b64f73e663a621",
|
||||
"/chunks/oasis/invoices/client-invoices.js": "/chunks/oasis/invoices/client-invoices.js?id=67b0305dbf50ae099003",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~3fc458f1.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~3fc458f1.js?id=fdbb65c6c6f217a4d5b8",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~4ee7ad30.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~4ee7ad30.js?id=2e16bdf5ea299297e2ff",
|
||||
"/js/main.7106615f8bf3723b0c18.hot-update.js": "/js/main.7106615f8bf3723b0c18.hot-update.js",
|
||||
"/chunks/oasis/invoices/client.10eb23d236e474739551.hot-update.js": "/chunks/oasis/invoices/client.10eb23d236e474739551.hot-update.js",
|
||||
"/js/main.4ad66715fdccfa95f533.hot-update.js": "/js/main.4ad66715fdccfa95f533.hot-update.js",
|
||||
"/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/client-invoices~chunks/oasis/i~c867553e.js": "/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/client-invoices~chunks/oasis/i~c867553e.js?id=40b170a96d02c3294462",
|
||||
"/chunks/app-language~chunks/dashboard~chunks/dashboard-oasis~chunks/files~chunks/invoices~chunks/oasi~539547d0.js": "/chunks/app-language~chunks/dashboard~chunks/dashboard-oasis~chunks/files~chunks/invoices~chunks/oasi~539547d0.js?id=6c2f3e360ad156780374",
|
||||
"/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/oasis/platba~ch~4e5ec961.js": "/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/oasis/platba~ch~4e5ec961.js?id=1c2667ef00c54a8c481b",
|
||||
"/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/platform~chunks~bc314893.js": "/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/platform~chunks~bc314893.js?id=898141b624d13e675c0b",
|
||||
"/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/shared-files~ch~6bbd80ba.js": "/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/shared-files~ch~6bbd80ba.js?id=c9cc99392d62a81de376",
|
||||
"/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~~02eb9e16.js": "/chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~~02eb9e16.js?id=6c6df9203e494228df82",
|
||||
"/chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list.js?id=ba52c10e1adf03f05a1f",
|
||||
"/chunks/oasis/invoices/list.4ad66715fdccfa95f533.hot-update.js": "/chunks/oasis/invoices/list.4ad66715fdccfa95f533.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.eca4bf7c2665f3a86e8b.hot-update.js": "/chunks/oasis/invoices/client-invoices.eca4bf7c2665f3a86e8b.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.79a0651d4a1216bf04f2.hot-update.js": "/chunks/oasis/invoices/client-invoices.79a0651d4a1216bf04f2.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.dd5d9e96cc93ec546155.hot-update.js": "/chunks/oasis/invoices/client-invoices.dd5d9e96cc93ec546155.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.df2a2d1f0c814db34976.hot-update.js": "/chunks/oasis/invoices/client-invoices.df2a2d1f0c814db34976.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.55531eb42c48014ab720.hot-update.js": "/chunks/oasis/invoices/client-invoices.55531eb42c48014ab720.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.00779bf008f6236fe0de.hot-update.js": "/chunks/oasis/invoices/client-invoices.00779bf008f6236fe0de.hot-update.js",
|
||||
"/js/main.72ac2d8eb6753e857da8.hot-update.js": "/js/main.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/platform~chunks~bc314893.72ac2d8eb6753e857da8.hot-update.js": "/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/platform~chunks~bc314893.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/shared-files~ch~6bbd80ba.72ac2d8eb6753e857da8.hot-update.js": "/chunks/files~chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list~chunks/shared-files~ch~6bbd80ba.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.72ac2d8eb6753e857da8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.72ac2d8eb6753e857da8.hot-update.js": "/chunks/oasis/invoices/client-invoices.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list.72ac2d8eb6753e857da8.hot-update.js": "/chunks/oasis/invoices/client-invoices~chunks/oasis/invoices/list.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/oasis/invoices/list.72ac2d8eb6753e857da8.hot-update.js": "/chunks/oasis/invoices/list.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/chunks/shared.72ac2d8eb6753e857da8.hot-update.js": "/chunks/shared.72ac2d8eb6753e857da8.hot-update.js",
|
||||
"/js/main.9b9acc6b3530c2a6ce80.hot-update.js": "/js/main.9b9acc6b3530c2a6ce80.hot-update.js",
|
||||
"/chunks/files~chunks/oasis/invoices/list~chunks/shared-files~chunks/shared/file-browser.9b9acc6b3530c2a6ce80.hot-update.js": "/chunks/files~chunks/oasis/invoices/list~chunks/shared-files~chunks/shared/file-browser.9b9acc6b3530c2a6ce80.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.9b9acc6b3530c2a6ce80.hot-update.js": "/chunks/oasis/invoices/client-invoices.9b9acc6b3530c2a6ce80.hot-update.js",
|
||||
"/chunks/platform~chunks/shared.9b9acc6b3530c2a6ce80.hot-update.js": "/chunks/platform~chunks/shared.9b9acc6b3530c2a6ce80.hot-update.js",
|
||||
"/js/main.532abbf83c5da815682c.hot-update.js": "/js/main.532abbf83c5da815682c.hot-update.js",
|
||||
"/chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chunks/oasis/invoices/client-invoices~chunks~4ba83fa1.js": "/chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chunks/oasis/invoices/client-invoices~chunks~4ba83fa1.js?id=2e029bf012cccfd18e6c",
|
||||
"/chunks/oasis/invoices/client-invoices.532abbf83c5da815682c.hot-update.js": "/chunks/oasis/invoices/client-invoices.532abbf83c5da815682c.hot-update.js",
|
||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.efa0b15371ac92a0034b.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.efa0b15371ac92a0034b.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.8912057e1f7fbbe34e8d.hot-update.js": "/chunks/oasis/invoices/client-invoices.8912057e1f7fbbe34e8d.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.1831c58d108af8138f9d.hot-update.js": "/chunks/oasis/invoices/client-invoices.1831c58d108af8138f9d.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.1d87fe5c5a77d9f9f6df.hot-update.js": "/chunks/oasis/invoices/client-invoices.1d87fe5c5a77d9f9f6df.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.323f8d8e0a775c320522.hot-update.js": "/chunks/oasis/invoices/client-invoices.323f8d8e0a775c320522.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.4d6128bbc9738fa7a06a.hot-update.js": "/chunks/oasis/invoices/client-invoices.4d6128bbc9738fa7a06a.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.4d13629f9f2c3d4813ad.hot-update.js": "/chunks/oasis/invoices/client-invoices.4d13629f9f2c3d4813ad.hot-update.js",
|
||||
"/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js": "/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js"
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</div>
|
||||
</router-link>
|
||||
|
||||
<router-link replace :to="{name: 'UserInvoices'}" class="menu-list-item link border-bottom-theme">
|
||||
<router-link replace :to="{name: 'ClientInvoices'}" class="menu-list-item link border-bottom-theme">
|
||||
<div class="icon text-theme">
|
||||
<file-text-icon size="17" />
|
||||
</div>
|
||||
|
||||
112
resources/js/Oasis/Invoices/Clients/Tabs/ClientInvoices.vue
Normal file
112
resources/js/Oasis/Invoices/Clients/Tabs/ClientInvoices.vue
Normal file
@@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<PageTab>
|
||||
<PageTabGroup>
|
||||
<DatatableWrapper
|
||||
@init="isLoading = false"
|
||||
:api="`/api/oasis/clients/${$route.params.id}/invoices`"
|
||||
:paginator="false"
|
||||
:columns="columns"
|
||||
class="table"
|
||||
>
|
||||
|
||||
<!--Table data content-->
|
||||
<template slot-scope="{ row }">
|
||||
<tr>
|
||||
<td>
|
||||
<a target="_blank" class="cell-item">
|
||||
{{ row.invoiceNumber }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cell-item">
|
||||
{{ row.total }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cell-item">
|
||||
{{ row.created_at }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="action-icons">
|
||||
<a target="_blank">
|
||||
<external-link-icon size="15" class="icon" />
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
|
||||
<!--Empty page-->
|
||||
<template v-slot:empty-page>
|
||||
<InfoBox class="form-fixed-width">
|
||||
<p>Client doesn't have any invoices yet.</p>
|
||||
</InfoBox>
|
||||
</template>
|
||||
</DatatableWrapper>
|
||||
</PageTabGroup>
|
||||
</PageTab>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DatatableWrapper from '@/components/Others/Tables/DatatableWrapper'
|
||||
import EmptyPageContent from '@/components/Others/EmptyPageContent'
|
||||
import PageTabGroup from '@/components/Others/Layout/PageTabGroup'
|
||||
import PageTab from '@/components/Others/Layout/PageTab'
|
||||
import InfoBox from '@/components/Others/Forms/InfoBox'
|
||||
import {ExternalLinkIcon} from "vue-feather-icons";
|
||||
import axios from 'axios'
|
||||
|
||||
export default {
|
||||
name: 'UserInvoices',
|
||||
components: {
|
||||
EmptyPageContent,
|
||||
DatatableWrapper,
|
||||
ExternalLinkIcon,
|
||||
PageTabGroup,
|
||||
InfoBox,
|
||||
PageTab,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isLoading: true,
|
||||
columns: [
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.number'),
|
||||
field: 'data.attributes.order',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.total'),
|
||||
field: 'data.attributes.bag.amount',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.plan'),
|
||||
field: 'data.attributes.bag.amount',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_invoices.table.payed'),
|
||||
field: 'data.attributes.created_at',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
label: this.$t('admin_page_user.table.action'),
|
||||
sortable: false
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@assets/vuefilemanager/_variables';
|
||||
@import '@assets/vuefilemanager/_mixins';
|
||||
@import '@assets/vuefilemanager/_forms';
|
||||
|
||||
.block-form {
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
@@ -19,11 +19,11 @@
|
||||
<!--Client-->
|
||||
<div v-show="isClient" class="menu-options" id="menu-list">
|
||||
<OptionGroup class="menu-option-group">
|
||||
<Option @click.native="" title="Edit" icon="rename" />
|
||||
<Option @click.native="goToCompany" title="Edit" icon="rename" />
|
||||
<Option @click.native="deleteItem" title="Delete" icon="trash" />
|
||||
</OptionGroup>
|
||||
<OptionGroup>
|
||||
<Option @click.native="showDetail" title="Go to Profile" icon="user" />
|
||||
<Option @click.native="goToCompany" title="Go to Profile" icon="user" />
|
||||
<Option @click.native="showDetail" :title="$t('context_menu.detail')" icon="detail" />
|
||||
</OptionGroup>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<OptionGroup class="menu-option-group">
|
||||
<Option @click.native="" title="Edit Invoice" icon="rename" />
|
||||
<Option @click.native="" title="Send Invoice" icon="send" />
|
||||
<Option @click.native="" title="Go to Company" icon="user" />
|
||||
<Option @click.native="goToCompany" title="Go to Company" icon="user" />
|
||||
<Option @click.native="" :title="$t('context_menu.delete')" icon="trash" />
|
||||
</OptionGroup>
|
||||
|
||||
@@ -56,7 +56,9 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
goToCompany() {
|
||||
this.$router.push({name: 'ClientDetail', params: {id: this.item.client_id}})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -22,4 +22,8 @@
|
||||
<style lang="scss" scoped>
|
||||
@import '@assets/vuefilemanager/_variables';
|
||||
@import '@assets/vuefilemanager/_mixins';
|
||||
|
||||
.page-tab {
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
12
resources/js/router.js
vendored
12
resources/js/router.js
vendored
@@ -131,7 +131,17 @@ const routesOasis = [
|
||||
requiresAuth: true,
|
||||
title: 'Client Detail'
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'ClientInvoices',
|
||||
path: '/invoice/client/:id/invoices',
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "chunks/oasis/invoices/client-invoices" */ './Oasis/Invoices/Clients/Tabs/ClientInvoices'),
|
||||
meta: {
|
||||
requiresAuth: true,
|
||||
title: 'Client Invoices'
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -43,6 +43,7 @@ Route::group(['middleware' => 'api', 'prefix' => '/api/oasis'], function () {
|
||||
Route::get('/search', [ClientController::class, 'search']);
|
||||
|
||||
Route::get('/{client}', [ClientController::class, 'show']);
|
||||
Route::get('/{client}/invoices', [ClientController::class, 'show_invoices']);
|
||||
Route::patch('/{client}', [ClientController::class, 'update']);
|
||||
Route::delete('/{client}', [ClientController::class, 'destroy']);
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Tests\Feature\Oasis;
|
||||
|
||||
use App\Models\Oasis\Invoice;
|
||||
use App\Models\Oasis\InvoiceProfile;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use App\Models\Oasis\Client;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
@@ -211,6 +213,43 @@ class OasisClientTest extends TestCase
|
||||
])->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_client_client_invoices()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create(['role' => 'user']);
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$client = Client::factory(Client::class)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$profile = InvoiceProfile::factory(InvoiceProfile::class)
|
||||
->create(['user_id' => $user->id]);
|
||||
|
||||
$invoice = Invoice::factory(Invoice::class)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'invoice_type' => 'regular-invoice',
|
||||
'invoice_number' => 2001212,
|
||||
'client' => [
|
||||
'name' => 'VueFileManager Inc.',
|
||||
],
|
||||
'user' => $profile->toArray(),
|
||||
]);
|
||||
|
||||
$this->getJson("/api/oasis/clients/$client->id/invoices")
|
||||
->assertJsonFragment([
|
||||
'id' => $invoice->id,
|
||||
])
|
||||
->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user