Files
SGF/app/Modules/Accounting/SalesLedgerController.php
2026-11-11 09:00:17 +02:00

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');}
}