62 lines
1.9 KiB
PHP
62 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Sale\Controllers\AdminApp;
|
|
|
|
use App\Domains\Sale\Requests\AdminAppSaleIndexRequest;
|
|
use App\Domains\Sale\Resources\AdminApp\SaleModificationResource;
|
|
use App\Domains\Sale\Resources\AdminApp\SaleResource;
|
|
use App\Domains\Sale\Services\AdminAppSalePdfService;
|
|
use App\Domains\Sale\Services\AdminAppSaleService;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
|
use Illuminate\Http\Response;
|
|
|
|
class SaleController extends Controller
|
|
{
|
|
public function __construct(
|
|
protected AdminAppSaleService $saleService,
|
|
protected AdminAppSalePdfService $salePdfService,
|
|
) {}
|
|
|
|
public function index(AdminAppSaleIndexRequest $request): AnonymousResourceCollection
|
|
{
|
|
$tenant = $request->user()->tenant()->firstOrFail();
|
|
|
|
return SaleResource::collection(
|
|
$this->saleService->sales($tenant, $request->validated())
|
|
)->additional([
|
|
'confirmed_sales_total' => $this->saleService->confirmedSalesTotal($tenant),
|
|
]);
|
|
}
|
|
|
|
public function modifications(Request $request): AnonymousResourceCollection
|
|
{
|
|
return SaleModificationResource::collection(
|
|
$this->saleService->modifications(
|
|
$request->user()->tenant()->firstOrFail()
|
|
)
|
|
);
|
|
}
|
|
|
|
public function downloadPdf(AdminAppSaleIndexRequest $request): Response
|
|
{
|
|
$tenant = $request->user()->tenant()->firstOrFail();
|
|
|
|
return $this->salePdfService->downloadSales(
|
|
$tenant,
|
|
$this->saleService->salesForExport($tenant, $request->validated()),
|
|
);
|
|
}
|
|
|
|
public function downloadModificationsPdf(Request $request): Response
|
|
{
|
|
$tenant = $request->user()->tenant()->firstOrFail();
|
|
|
|
return $this->salePdfService->downloadModifications(
|
|
$tenant,
|
|
$this->saleService->modificationsForExport($tenant),
|
|
);
|
|
}
|
|
}
|