feat(sales): scope sales actions totals history and exports by event
This commit is contained in:
@@ -13,6 +13,7 @@ use App\Domains\Commerce\Sale\Resources\AdminApp\SaleTicketResource;
|
||||
use App\Domains\Commerce\Sale\Services\AdminAppSaleExcelService;
|
||||
use App\Domains\Commerce\Sale\Services\AdminAppSalePdfService;
|
||||
use App\Domains\Commerce\Sale\Services\AdminAppSaleService;
|
||||
use App\Domains\Core\Auth\Services\EventScopeService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||
@@ -27,15 +28,20 @@ class SaleController extends Controller
|
||||
protected AdminAppSaleExcelService $saleExcelService,
|
||||
) {}
|
||||
|
||||
private function eventId(Request $request): ?int
|
||||
{
|
||||
return app(EventScopeService::class)->eventId($request->user());
|
||||
}
|
||||
|
||||
public function index(AdminAppSaleIndexRequest $request): AnonymousResourceCollection
|
||||
{
|
||||
$tenant = $request->user()->tenant()->firstOrFail();
|
||||
|
||||
return SaleResource::collection(
|
||||
$this->saleService->sales($tenant, $request->validated())
|
||||
$this->saleService->sales($tenant, $request->validated(), $this->eventId($request))
|
||||
)->additional([
|
||||
'confirmed_sales_total' => $this->saleService->confirmedSalesTotal($tenant),
|
||||
'refunded_total' => $this->saleService->refundedTotal($tenant),
|
||||
'confirmed_sales_total' => $this->saleService->confirmedSalesTotal($tenant, $this->eventId($request)),
|
||||
'refunded_total' => $this->saleService->refundedTotal($tenant, $this->eventId($request)),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -43,7 +49,7 @@ class SaleController extends Controller
|
||||
{
|
||||
$tenant = $request->user()->tenant()->firstOrFail();
|
||||
|
||||
return new SaleDetailResource($this->saleService->detail($tenant, $sale));
|
||||
return new SaleDetailResource($this->saleService->detail($tenant, $sale, $this->eventId($request)));
|
||||
}
|
||||
|
||||
public function tickets(Request $request, int $sale): AnonymousResourceCollection
|
||||
@@ -51,7 +57,7 @@ class SaleController extends Controller
|
||||
$tenant = $request->user()->tenant()->firstOrFail();
|
||||
|
||||
return SaleTicketResource::collection(
|
||||
$this->saleService->tickets($tenant, $sale)
|
||||
$this->saleService->tickets($tenant, $sale, $this->eventId($request))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -59,14 +65,14 @@ class SaleController extends Controller
|
||||
{
|
||||
$tenant = $request->user()->tenant()->firstOrFail();
|
||||
|
||||
return new SaleResource($this->saleService->confirm($tenant, $sale));
|
||||
return new SaleResource($this->saleService->confirm($tenant, $sale, $this->eventId($request)));
|
||||
}
|
||||
|
||||
public function cancel(Request $request, int $sale): SaleResource
|
||||
{
|
||||
$tenant = $request->user()->tenant()->firstOrFail();
|
||||
|
||||
return new SaleResource($this->saleService->cancel($tenant, $sale));
|
||||
return new SaleResource($this->saleService->cancel($tenant, $sale, $this->eventId($request)));
|
||||
}
|
||||
|
||||
public function modifications(
|
||||
@@ -76,6 +82,7 @@ class SaleController extends Controller
|
||||
$this->saleService->modifications(
|
||||
$request->user()->tenant()->firstOrFail(),
|
||||
$request->validated(),
|
||||
$this->eventId($request),
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -86,7 +93,7 @@ class SaleController extends Controller
|
||||
|
||||
return $this->salePdfService->downloadSales(
|
||||
$tenant,
|
||||
$this->saleService->salesForExport($tenant, $request->validated()),
|
||||
$this->saleService->salesForExport($tenant, $request->validated(), $this->eventId($request)),
|
||||
$request->validated('timezone'),
|
||||
);
|
||||
}
|
||||
@@ -97,7 +104,7 @@ class SaleController extends Controller
|
||||
|
||||
return $this->salePdfService->downloadModifications(
|
||||
$tenant,
|
||||
$this->saleService->modificationsForExport($tenant, $request->validated()),
|
||||
$this->saleService->modificationsForExport($tenant, $request->validated(), $this->eventId($request)),
|
||||
$request->validated('timezone'),
|
||||
);
|
||||
}
|
||||
@@ -108,7 +115,7 @@ class SaleController extends Controller
|
||||
|
||||
return $this->saleExcelService->downloadSales(
|
||||
$tenant,
|
||||
$this->saleService->salesForExport($tenant, $request->validated()),
|
||||
$this->saleService->salesForExport($tenant, $request->validated(), $this->eventId($request)),
|
||||
$request->validated('timezone'),
|
||||
);
|
||||
}
|
||||
@@ -120,7 +127,7 @@ class SaleController extends Controller
|
||||
|
||||
return $this->saleExcelService->downloadModifications(
|
||||
$tenant,
|
||||
$this->saleService->modificationsForExport($tenant, $request->validated()),
|
||||
$this->saleService->modificationsForExport($tenant, $request->validated(), $this->eventId($request)),
|
||||
$request->validated('timezone'),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user