diff --git a/app/Http/Controllers/Api/Document/DocumentTransactions.php b/app/Http/Controllers/Api/Document/DocumentTransactions.php index 905bffeb4..d9636a012 100644 --- a/app/Http/Controllers/Api/Document/DocumentTransactions.php +++ b/app/Http/Controllers/Api/Document/DocumentTransactions.php @@ -2,21 +2,27 @@ namespace App\Http\Controllers\Api\Document; +use App\Abstracts\Http\ApiController; use App\Http\Requests\Banking\Transaction as Request; use App\Jobs\Banking\CreateBankingDocumentTransaction; use App\Jobs\Banking\DeleteTransaction; use App\Models\Banking\Transaction; use App\Models\Document\Document; use App\Transformers\Banking\Transaction as Transformer; -use Dingo\Api\Routing\Helpers; -use Illuminate\Foundation\Bus\DispatchesJobs; -use Illuminate\Routing\Controller as BaseController; -use Illuminate\Foundation\Validation\ValidatesRequests; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -class DocumentTransactions extends BaseController +class DocumentTransactions extends ApiController { - use Helpers, AuthorizesRequests, DispatchesJobs, ValidatesRequests; + /** + * Instantiate a new controller instance. + */ + public function __construct() + { + // Add CRUD permission check + $this->middleware('permission:create-banking-transactions')->only('create', 'store', 'duplicate', 'import'); + $this->middleware('permission:read-banking-transactions')->only('index', 'show', 'edit', 'export'); + $this->middleware('permission:update-banking-transactions')->only('update', 'enable', 'disable'); + $this->middleware('permission:delete-banking-transactions')->only('destroy'); + } /** * Display a listing of the resource. @@ -26,7 +32,7 @@ class DocumentTransactions extends BaseController */ public function index($document_id) { - $transactions = Transaction::document($document_id)->get(); + $transactions = Transaction::documentId($document_id)->get(); return $this->response->collection($transactions, new Transformer()); } @@ -40,7 +46,7 @@ class DocumentTransactions extends BaseController */ public function show($document_id, $id) { - $transaction = Transaction::document($document_id)->find($id); + $transaction = Transaction::documentId($document_id)->find($id); return $this->response->item($transaction, new Transformer()); } @@ -70,7 +76,7 @@ class DocumentTransactions extends BaseController */ public function destroy($document_id, $id) { - $transaction = Transaction::document($document_id)->find($id); + $transaction = Transaction::documentId($document_id)->find($id); $this->dispatch(new DeleteTransaction($transaction)); diff --git a/app/Models/Banking/Transaction.php b/app/Models/Banking/Transaction.php index 64b8b27df..6013cadbe 100644 --- a/app/Models/Banking/Transaction.php +++ b/app/Models/Banking/Transaction.php @@ -193,17 +193,53 @@ class Transaction extends Model } /** - * Get by document (invoice/bill). + * Get by document id. * * @param \Illuminate\Database\Eloquent\Builder $query * @param integer $document_id * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeDocument($query, $document_id) + public function scopeDocumentId($query, $document_id) { return $query->where('document_id', '=', $document_id); } + /** + * Get by account id. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param integer $account_id + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeAccountId($query, $account_id) + { + return $query->where('account_id', '=', $account_id); + } + + /** + * Get by contact id. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param integer $contact_id + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeContactId($query, $contact_id) + { + return $query->where('contact_id', '=', $contact_id); + } + + /** + * Get by category id. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @param integer $category_id + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeCategoryId($query, $category_id) + { + return $query->where('category_id', '=', $category_id); + } + /** * Order by paid date. * diff --git a/modules/BC21/Http/Controllers/Api/Sales/InvoiceTransactions.php b/modules/BC21/Http/Controllers/Api/Sales/InvoiceTransactions.php index 2f5e46733..f4dc09f28 100644 --- a/modules/BC21/Http/Controllers/Api/Sales/InvoiceTransactions.php +++ b/modules/BC21/Http/Controllers/Api/Sales/InvoiceTransactions.php @@ -2,21 +2,27 @@ namespace App\Http\Controllers\Api\Sales; +use App\Abstracts\Http\ApiController; use App\Http\Requests\Banking\Transaction as Request; use App\Jobs\Banking\CreateBankingDocumentTransaction; use App\Jobs\Banking\DeleteTransaction; use App\Models\Banking\Transaction; use App\Models\Document\Document; use App\Transformers\Banking\Transaction as Transformer; -use Dingo\Api\Routing\Helpers; -use Illuminate\Foundation\Bus\DispatchesJobs; -use Illuminate\Routing\Controller as BaseController; -use Illuminate\Foundation\Validation\ValidatesRequests; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -class InvoiceTransactions extends BaseController +class InvoiceTransactions extends ApiController { - use Helpers, AuthorizesRequests, DispatchesJobs, ValidatesRequests; + /** + * Instantiate a new controller instance. + */ + public function __construct() + { + // Add CRUD permission check + $this->middleware('permission:create-banking-transactions')->only('create', 'store', 'duplicate', 'import'); + $this->middleware('permission:read-banking-transactions')->only('index', 'show', 'edit', 'export'); + $this->middleware('permission:update-banking-transactions')->only('update', 'enable', 'disable'); + $this->middleware('permission:delete-banking-transactions')->only('destroy'); + } /** * Display a listing of the resource. @@ -26,7 +32,7 @@ class InvoiceTransactions extends BaseController */ public function index($invoice_id) { - $transactions = Transaction::document($invoice_id)->get(); + $transactions = Transaction::documentId($invoice_id)->get(); return $this->response->collection($transactions, new Transformer()); } @@ -40,7 +46,7 @@ class InvoiceTransactions extends BaseController */ public function show($invoice_id, $id) { - $transaction = Transaction::document($invoice_id)->find($id); + $transaction = Transaction::documentId($invoice_id)->find($id); return $this->response->item($transaction, new Transformer()); } @@ -70,7 +76,7 @@ class InvoiceTransactions extends BaseController */ public function destroy($invoice_id, $id) { - $transaction = Transaction::document($invoice_id)->find($id); + $transaction = Transaction::documentId($invoice_id)->find($id); $this->dispatch(new DeleteTransaction($transaction));