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