d2d.emegrendeles.hu/app/Http/Controllers/PriceListController.php
E98Developer 68b7c35bef git init
2026-02-28 06:53:05 +01:00

157 lines
5.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Enums\DbStatusFieldEnum;
use App\Models\PriceList;
use App\Models\ProfitCenter;
use App\Services\PriceListService;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
class PriceListController extends Controller
{
protected $service;
public function __construct(PriceListService $service)
{
$this->service = $service;
}
/**
* Display a listing of the resource.
*/
public function index(): View|Response|JsonResponse
{
if (\request()->input('t') == 1) {
// ... (keep the dd calls if you want, but for now let's just make it valid)
}
return view('modules.priceList.index');
}
/**
* Show the form for creating a new resource.
*/
public function create(): Response|JsonResponse
{
return response()->noContent();
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request): Response|JsonResponse
{
return response()->noContent();
}
/**
* Display the specified resource.
*/
public function show(int $priceListId): Response|JsonResponse
{
return response()->noContent();
}
/**
* Show the form for editing the specified resource.
*/
public function edit(int $PriceListId): Response|JsonResponse
{
return response()->noContent();
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, int $PriceListId): Response|JsonResponse
{
return response()->noContent();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(int $PriceListId): Response|JsonResponse
{
return response()->noContent();
}
public function getDataTableContent(): JsonResponse
{
$ret = ['data' => []];
$accessSupplierId = ProfitCenter::with('suppliers')->find(auth()->user()->profitCenters->first()->id)->suppliers->pluck('id')->toArray();
$lastPriceList = [];
foreach ($accessSupplierId as $supplierId) {
if ($PriceList = PriceList::where('supplier_id', $supplierId)
->where('status', DbStatusFieldEnum::active)
->where('available', '<=', Carbon::now()->toDateTimeString())
->orderBy('available', 'desc')
->first()) {
$lastPriceList[] = $PriceList->toArray()['id'];
}
}
$s = PriceList::with('supplier', 'attachment')
->where('status', DbStatusFieldEnum::active)
->whereIn('supplier_id', $accessSupplierId)
->where(function ($query) use ($lastPriceList) {
$query->where('available', '>=', Carbon::now()->toDateTimeString());
$query->orWhereIn('id', $lastPriceList);
})
->orderBy('available', 'desc');
$items = $s->get()->toArray();
foreach ($items as $item) {
$data['id'] = $item['id'];
$data['supplierName'] = $item['supplier']['name'];
$data['available'] = formatterDate($item['available']);
$data['created_at'] = formatterDateTime($item['created_at']);
$data['note'] = $item['note'];
$data['fileUrl'] = false;
$data['fileName'] = false;
if ($item['attachment']) {
$data['fileUrl'] = $item['attachment']['PublicUrl'].$item['attachment']['filename'];
$data['fileName'] = $item['attachment']['original_filename'];
}
$ret['data'][] = $data;
}
return \response()->json($ret);
$ret = ['data' => []];
if (! $userSuppliers = ProfitCenter::find(auth()->user()->profitCenters()->first()->id)->
suppliers()->pluck('suppliers.id')) {
return \response()->json($ret);
}
$userSupplierIds = $userSuppliers->toArray();
$repository = new \App\Repositories\PriceListRepository;
$repository->setRelation(['supplier', 'attachment']);
$items = $repository->getQueryWithRelations()->get()->toArray();
foreach ($items as $item) {
if (in_array($item['supplier_id'], $userSupplierIds)) {
$data['id'] = $item['id'];
$data['supplierName'] = $item['supplier']['name'];
$data['available'] = formatterDate($item['available']);
$data['created_at'] = formatterDateTime($item['created_at']);
$data['fileUrl'] = false;
$data['fileName'] = false;
if ($item['attachment']) {
$data['fileUrl'] = $item['attachment']['PublicUrl'].$item['attachment']['filename'];
$data['fileName'] = $item['attachment']['original_filename'];
}
$ret['data'][] = $data;
}
}
return \response()->json($ret);
}
}