fixed document transactions api

This commit is contained in:
Denis Duliçi 2021-01-02 13:06:02 +03:00
parent 84b3e6914c
commit 6903b1624a
3 changed files with 70 additions and 22 deletions

View File

@ -2,21 +2,27 @@
namespace App\Http\Controllers\Api\Document; namespace App\Http\Controllers\Api\Document;
use App\Abstracts\Http\ApiController;
use App\Http\Requests\Banking\Transaction as Request; use App\Http\Requests\Banking\Transaction as Request;
use App\Jobs\Banking\CreateBankingDocumentTransaction; use App\Jobs\Banking\CreateBankingDocumentTransaction;
use App\Jobs\Banking\DeleteTransaction; use App\Jobs\Banking\DeleteTransaction;
use App\Models\Banking\Transaction; use App\Models\Banking\Transaction;
use App\Models\Document\Document; use App\Models\Document\Document;
use App\Transformers\Banking\Transaction as Transformer; 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. * Display a listing of the resource.
@ -26,7 +32,7 @@ class DocumentTransactions extends BaseController
*/ */
public function index($document_id) public function index($document_id)
{ {
$transactions = Transaction::document($document_id)->get(); $transactions = Transaction::documentId($document_id)->get();
return $this->response->collection($transactions, new Transformer()); return $this->response->collection($transactions, new Transformer());
} }
@ -40,7 +46,7 @@ class DocumentTransactions extends BaseController
*/ */
public function show($document_id, $id) 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()); return $this->response->item($transaction, new Transformer());
} }
@ -70,7 +76,7 @@ class DocumentTransactions extends BaseController
*/ */
public function destroy($document_id, $id) 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)); $this->dispatch(new DeleteTransaction($transaction));

View File

@ -193,17 +193,53 @@ class Transaction extends Model
} }
/** /**
* Get by document (invoice/bill). * Get by document id.
* *
* @param \Illuminate\Database\Eloquent\Builder $query * @param \Illuminate\Database\Eloquent\Builder $query
* @param integer $document_id * @param integer $document_id
* @return \Illuminate\Database\Eloquent\Builder * @return \Illuminate\Database\Eloquent\Builder
*/ */
public function scopeDocument($query, $document_id) public function scopeDocumentId($query, $document_id)
{ {
return $query->where('document_id', '=', $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. * Order by paid date.
* *

View File

@ -2,21 +2,27 @@
namespace App\Http\Controllers\Api\Sales; namespace App\Http\Controllers\Api\Sales;
use App\Abstracts\Http\ApiController;
use App\Http\Requests\Banking\Transaction as Request; use App\Http\Requests\Banking\Transaction as Request;
use App\Jobs\Banking\CreateBankingDocumentTransaction; use App\Jobs\Banking\CreateBankingDocumentTransaction;
use App\Jobs\Banking\DeleteTransaction; use App\Jobs\Banking\DeleteTransaction;
use App\Models\Banking\Transaction; use App\Models\Banking\Transaction;
use App\Models\Document\Document; use App\Models\Document\Document;
use App\Transformers\Banking\Transaction as Transformer; 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. * Display a listing of the resource.
@ -26,7 +32,7 @@ class InvoiceTransactions extends BaseController
*/ */
public function index($invoice_id) public function index($invoice_id)
{ {
$transactions = Transaction::document($invoice_id)->get(); $transactions = Transaction::documentId($invoice_id)->get();
return $this->response->collection($transactions, new Transformer()); return $this->response->collection($transactions, new Transformer());
} }
@ -40,7 +46,7 @@ class InvoiceTransactions extends BaseController
*/ */
public function show($invoice_id, $id) 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()); return $this->response->item($transaction, new Transformer());
} }
@ -70,7 +76,7 @@ class InvoiceTransactions extends BaseController
*/ */
public function destroy($invoice_id, $id) 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)); $this->dispatch(new DeleteTransaction($transaction));