diff --git a/app/Http/Controllers/DocumentController.php b/app/Http/Controllers/DocumentController.php new file mode 100644 index 000000000000..3d71de850326 --- /dev/null +++ b/app/Http/Controllers/DocumentController.php @@ -0,0 +1,89 @@ +user()->can('create', Document::class); + } +} diff --git a/app/Http/Requests/Document/DestroyDocumentRequest.php b/app/Http/Requests/Document/DestroyDocumentRequest.php new file mode 100644 index 000000000000..ace927265763 --- /dev/null +++ b/app/Http/Requests/Document/DestroyDocumentRequest.php @@ -0,0 +1,28 @@ +user()->can('edit', $this->document); + } +} diff --git a/app/Http/Requests/Document/EditDocumentRequest.php b/app/Http/Requests/Document/EditDocumentRequest.php new file mode 100644 index 000000000000..829a8965b8cb --- /dev/null +++ b/app/Http/Requests/Document/EditDocumentRequest.php @@ -0,0 +1,39 @@ +user()->can('edit', $this->document); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/Document/ShowDocumentRequest.php b/app/Http/Requests/Document/ShowDocumentRequest.php new file mode 100644 index 000000000000..5be9f7b248f9 --- /dev/null +++ b/app/Http/Requests/Document/ShowDocumentRequest.php @@ -0,0 +1,39 @@ +user()->can('view', $this->document); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/Document/StoreDocumentRequest.php b/app/Http/Requests/Document/StoreDocumentRequest.php new file mode 100644 index 000000000000..daaac114c6a0 --- /dev/null +++ b/app/Http/Requests/Document/StoreDocumentRequest.php @@ -0,0 +1,43 @@ +user()->can('create', Document::class); + } + + public function rules() + { + return [ + ]; + } + + protected function prepareForValidation() + { + $input = $this->all(); + + + $this->replace($input); + } +} diff --git a/app/Http/Requests/Document/UpdateDocumentRequest.php b/app/Http/Requests/Document/UpdateDocumentRequest.php new file mode 100644 index 000000000000..e707791a5439 --- /dev/null +++ b/app/Http/Requests/Document/UpdateDocumentRequest.php @@ -0,0 +1,44 @@ +user()->can('edit', $this->document); + } + + public function rules() + { + return []; + } + + protected function prepareForValidation() + { + $input = $this->all(); + + $this->replace($input); + } +} diff --git a/app/Policies/DocumentPolicy.php b/app/Policies/DocumentPolicy.php new file mode 100644 index 000000000000..5ac01f5146b8 --- /dev/null +++ b/app/Policies/DocumentPolicy.php @@ -0,0 +1,16 @@ +isAdmin() || $user->hasPermission('create_all'); + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 256a3daa91c6..5996bae84888 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -18,6 +18,7 @@ use App\Models\CompanyGateway; use App\Models\CompanyToken; use App\Models\Credit; use App\Models\Design; +use App\Models\Document; use App\Models\Expense; use App\Models\GroupSetting; use App\Models\Invoice; @@ -38,6 +39,7 @@ use App\Policies\CompanyPolicy; use App\Policies\CompanyTokenPolicy; use App\Policies\CreditPolicy; use App\Policies\DesignPolicy; +use App\Policies\DocumentPolicy; use App\Policies\ExpensePolicy; use App\Policies\GroupSettingPolicy; use App\Policies\InvoicePolicy; @@ -70,6 +72,7 @@ class AuthServiceProvider extends ServiceProvider CompanyGateway::class => CompanyGatewayPolicy::class, Credit::class => CreditPolicy::class, Design::class => DesignPolicy::class, + Document::class => DocumentPolicy::class, Expense::class => ExpensePolicy::class, GroupSetting::class => GroupSettingPolicy::class, Invoice::class => InvoicePolicy::class, diff --git a/routes/api.php b/routes/api.php index 5d9d7b016ddd..e216ee0d54be 100644 --- a/routes/api.php +++ b/routes/api.php @@ -69,6 +69,10 @@ Route::group(['middleware' => ['api_db', 'token_auth', 'locale'], 'prefix' => 'a Route::post('vendors/bulk', 'VendorController@bulk')->name('vendors.bulk'); + Route::resource('documents', 'DocumentController');// name = (documents. index / create / show / update / destroy / edit + + Route::post('documents/bulk', 'DocumentController@bulk')->name('documents.bulk'); + Route::resource('client_statement', 'ClientStatementController@statement');// name = (client_statement. index / create / show / update / destroy / edit Route::resource('payment_terms', 'PaymentTermController');// name = (payments. index / create / show / update / destroy / edit