19 lines
1.2 KiB
PHP
19 lines
1.2 KiB
PHP
<?php
|
|
namespace App\Modules\Accounting;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
final class SalesLedgerController extends Controller
|
|
{
|
|
private function data(Request $r,GeneralLedger $ledger):array
|
|
{
|
|
$d=$r->validate(['invoice_id'=>'sometimes|required|integer|min:1','page'=>'sometimes|integer|min:1|max:100000']);abort_if(array_diff(array_keys($r->query()),array_keys($d))!==[],422);
|
|
try{return $ledger->sales($r->user(),isset($d['invoice_id'])?(int)$d['invoice_id']:null,(int)($d['page']??1));}
|
|
catch(\DomainException $e){abort(403,$e->getMessage());}
|
|
catch(\InvalidArgumentException $e){abort(422,$e->getMessage());}
|
|
}
|
|
public function page(Request $r,GeneralLedger $ledger){if(config('sgf_single_installation.ledger_enabled')===true)return app(ComposedLedgerController::class)->focused($r,'sales');return response()->view('accounting.sales-ledger',['data'=>$this->data($r,$ledger)])->header('Cache-Control','no-store');}
|
|
public function index(Request $r,GeneralLedger $ledger){if(config('sgf_single_installation.ledger_enabled')===true)return app(ComposedLedgerController::class)->focused($r,'sales');return response()->json($this->data($r,$ledger))->header('Cache-Control','no-store');}
|
|
}
|
|
|
|
|