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

180 lines
6.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\PriceList;
use App\Models\ProfitCenter;
use App\Repositories\SupplierRepository;
use App\Services\SupplierService;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
class SupplierController extends Controller
{
protected SupplierService $service;
public function __construct(SupplierService $service)
{
$this->service = $service;
}
/**
* Display a listing of the resource.
*/
public function index(): View
{
return view('modules.supplier.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 $SupplierId): View|Response|JsonResponse
{
if (\request()->get('t')) {
$supplierData = $this->service->getWithAllRelations($SupplierId);
dd($supplierData);
$priceLists = PriceList::where('supplier_id', $SupplierId)->with('attachment');
$PriceList = $priceLists->where('available', '<=', Carbon::now()->format('Y-m-d'));
if ($priceLists->orderBy('available', 'desc')->first()) {
$PriceList = $priceLists->orderBy('available', 'desc')->first();
}
dd($PriceList->toArray());
}
if (! $supplierData = $this->service->getWithAllRelations($SupplierId)) {
return response()->noContent();
}
$viewData = [];
$needData = ['name', 'openHours', 'ordersDeadline', 'minOrderValue', 'contact', 'note'];
foreach ($needData as $pointer) {
$viewData[$pointer] = $supplierData[$pointer];
}
$viewData['product_group'] = [];
foreach ($supplierData['product_group'] as $productGroup) {
$viewData['product_group'][] = [
'name' => $productGroup['name'],
'type' => $productGroup['type'],
];
}
$viewData['service'] = [];
$supplierData['service'] = collect($supplierData['service'])->sortBy('name')->toArray();
foreach ($supplierData['service'] as $service) {
$viewData['service'][] = [
'name' => $service['name'],
'id' => $service['id'],
];
}
$retData = [];
$retData['supplierData'] = $viewData;
$retData['attachment'] = $supplierData['attachment'];
unset($viewData,$needData,$supplierData);
$retData['files'] = [];
/*
* PriceList file
*/
$priceLists = PriceList::where('supplier_id', $SupplierId)->with('attachment');
$PriceList = $priceLists->where('available', '<=', Carbon::now()->format('Y-m-d'));
if ($priceLists->orderBy('available', 'desc')->first()) {
$PriceList = $priceLists->orderBy('available', 'desc')->first();
$retData['files']['priceList'] = $PriceList->toArray();
unset($priceLists,$PriceList);
}
return view('modules.supplier.show')->with($retData);
dd($retData, $supplierData);
$retData['supplierData'] = $supplierData;
$retData['testMode'] = ($this->testMode) ? 'true' : 'false';
$retData['init'] = false;
$ProductGroup = new \App\Models\ProductGroup;
$productGroupArray = $ProductGroup->allWithParents(2);
$retData['productGroup'] = $productGroupArray;
$retData['profitCenter'] = ProfitCenter::orderBy('name', 'asc')->get()->toArray();
return view('modules.supplier.show')->with($retData);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(int $SupplierId): Response|JsonResponse
{
return response()->noContent();
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, int $SupplierId): Response|JsonResponse
{
return response()->noContent();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(int $SupplierId): Response|JsonResponse
{
return response()->noContent();
}
public function getDataTableContent(): JsonResponse
{
$accessSupplier = ProfitCenter::with('suppliers')->find(auth()->user()->profitCenters->first()->id)->suppliers->pluck('id')->toArray();
// $suppliers=Supplier::all()->toArray();
$repo = new SupplierRepository;
$suppliers = $repo->allWithRelations();
$suppliers = array_filter($suppliers, function ($item) use ($accessSupplier) {
if (in_array($item['id'], $accessSupplier)) {
return true;
}
return false;
});
// dd($suppliers);
// $repository=new SupplierRepository();
$ret = ['data' => []];
// $items=$repository->getQueryWithRelations()->orderBy('name')->get()->toArray();
foreach ($suppliers as $item) {
// dd(collect($item['product_group'])->pluck('name')->all());
// dd(collect($item['product_group'])->implode('name',','));
$data['id'] = $item['id'];
$data['name'] = $item['name'];
$data['hooreycaId'] = $item['hooreycaId'];
$data['nameId'] = $item['nameId'];
$data['product_group'] = collect($item['product_group'])->implode('name', ', ');
$data['service'] = collect($item['service'])->implode('name', ', ');
$data['created_at'] = formatterDateTime($item['created_at']);
$data['canSeeInOrder'] = $item['canSeeInOrder'];
$ret['data'][] = $data;
}
return \response()->json($ret);
}
}