order_archive_id); $ItemCollection->HooreycaVolumen=null; $ItemCollection->HooreycaUnitPrice=null; if($ItemCollection->HooreycaMultiplier!==null){ $ItemCollection->HooreycaVolumen=$ItemCollection->quantity*$ItemCollection->HooreycaMultiplier; $ItemCollection->HooreycaUnitPrice=($ItemCollection->quantity*$ItemCollection->unitMultiplier*$ItemCollection->price)/$ItemCollection->HooreycaVolumen; } /* if(!in_array($ItemCollection->id,[91045,91046,91047,91042,91043,91044])){ var_dump($ItemCollection->id); var_dump(($ItemCollection->quantity*$ItemCollection->price)/($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier)); die('hello'); }*/ //$ItemCollection->HooreycaSumPrice=($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier); //'HooreycaSumPrice'=> return $ItemCollection; /* Rendelő felületről adatok biztosítása - Cikk kódja - Mennyiségi egység (árlista L oszlop) - Mértékegység (árlista H oszlop) - Kiszerelés (árlista F oszlop) - Súly/Űrtartalom (árlista G oszlop) - Egységszorzó (árlista K oszlop) - Rendelt mennyiség - Megrendelt cikk nettó értéke */ return $ItemCollection->map(function ($item){ return[ 'id'=>$item->id, 'hooreycaId'=>$item->hooreycaId, //- Cikk kódja 'HooreycaUnit'=>$item->HooreycaUnit, 'HooreycaMultiplier'=>$item->HooreycaMultiplier, "productName"=>$item->name.'aaaaaaaaaaaa', 'hooreycaId'=>$item->hooreycaId, "productUnit"=>$item->productUnit, "sellerUnit"=>$item->sellerUnit, "unitMultiplier"=>$item->unitMultiplier, //- Egységszorzó (árlista K oszlop) "amountUnit"=>$item-> amountUnit, "quantity"=>$item->quantity, //- Rendelt mennyiség "price"=>$item->price,//- Megrendelt cikk nettó értéke 'HooreycaVolumen'=>$item->quantity*$item->HooreycaMultiplier, 'HooreycaSumPrice'=>($item->quantity*$item->price)/($item->quantity*$item->HooreycaMultiplier), ]; }); } public function convertOrderToHooreycaAPI($order,$key){ /* Rendelő felületről adatok biztosítása - szállító kódja supplier.hooreycaId - Szállítási dátum deliveryDate - Üzlet kódja profit_center.hooreycaId */ $order->APICallBackId=(string)\Str::orderedUuid(); $order->save(); try { $order->supplierHooreycaId=$order->supplier->hooreycaId; }catch (\Exception $e){ } $order->supplierName=$order->supplier->name; try { $order->profitCenterHooreycaId=$order->profitCenter->hooreycaId; $order->profitCenterName=$order->profitCenter->name; }catch (\Exception $e){ $order->profitCenterHooreycaId=null; } $order->items= $order->itemsAPISpecial->transform([$this,'convertItemCollectionToHooreycaAPIItems']); unset($order->supplier,$order->profitCenter,$order->itemsAPISpecial); return $order; } /** Display a listing of the unprocessed orders. @group Order management @authenticated @urlParam page int required The page number. Example: 4 @responseField status integer request HTTP status @responseField status integer request HTTP status @responseField success boolean process successes @responseField apiVersion integer current API version @responseField processedTime DateTime process Timestamp @responseField data object collection of Orders. @responseField data.APICallBackId string Neet to set order update status in setProcessed interface. @responseFile 200 scenario="Has unprocessed orders" example/APIUnProcessingResponse.json @responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json */ public function unProcessed(Request $request,Responder $responder) { Log::channel('api')->info('API request',['requestData'=>var_export($request->server(),true)]); $updateDate=Carbon::now(); $OrderCollection=OrderArchive::with(['supplier'=>function ($query){ $query->select('id','name','hooreycaId'); //$query->where('hooreycaDataActive',1); },'profitCenter'=>function ($query){ $query->select('id','name','hooreycaId'); $query->where('hooreycaDataActive',1); },'itemsAPISpecial' =>function ($query){ //$query->select('id','order_archive_id'); $query->select( 'order_archive_id', 'id', 'hooreycaId', //- Cikk kódja "name", 'hooreycaId', 'HooreycaUnit', 'HooreycaMultiplier', "productUnit", "sellerUnit", "unitMultiplier", //- Egységszorzó (árlista K oszlop) "amountUnit", "quantity", //- Rendelt mennyiség "price" ); $query->whereNotNull('hooreycaId'); $query->where('hooreycaId','<>',''); }, ])->select( 'id', 'supplier_id', 'profit_center_id', 'humanId', 'deliveryDate', 'confirmed',) //->whereNulll('APIConfirmed') ->whereNotNull('confirmed') ->whereNull('APIConfirmed') ->whereHas('profitCenter', function ($query) { $query->where('hooreycaDataActive', 1); }) ->orderBy('id','desc')->paginate(3) ; /* where condition not working on paginated eloquent collection dd($OrderCollection->toArray()); $OrderCollection=$OrderCollection->whereNotNull('profit_center'); */ $ret[]=get_debug_type($OrderCollection); $OrderCollection->transform([$this,'convertOrderToHooreycaAPI']); $updateId=$OrderCollection->pluck('id'); $header=parseAPIVersionFromNamespace(__NAMESPACE__); $header['processedTime']=$updateDate->format('Y.m.d. H:i:s.u'); $response=responder()->success($OrderCollection)->respond(null,$header); $ret=[]; $ret[]=$OrderCollection->pluck('id'); $ret[]=OrderArchive::whereIn('id',$OrderCollection->pluck('id')); OrderArchive::whereIn('id',$updateId)->update(['APILastGetting'=>$updateDate]); $ret[]=OrderArchive::whereIn('id',$updateId)->update(['APILastGetting'=>$updateDate]); Log::channel('api')->info('Update APILastGetting ',['Id'=>$updateId->toArray(),'Date'=>$updateDate]); $ret[]=$response->getContent(); $ret[]=var_export($request->server(),true); Log::channel('api')->info('API response',['responseBody'=>json_decode($response->getContent(), JSON_PRETTY_PRINT)]); return $response; /*erorr teszthez DB error * return responder()->success(OrderArchive::with('items')->orderBy('kod','desc')->paginate(2))->respond(); */ } /* * @bodyParam [] Example:["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987ee197-5293-48de-a488-3c9a05229bb6"] localhost key 2|hqN0ifD9OP0vIAQZRPubcZ7x5W8qw49XKeFk9WJs d2d key "1|tCtfKT9hAjGt213iuluWiHEvlyAK2KqtZmblQx8Y" {"APICallBackId":["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987f3001-6364-4d7c-8b0c-daf29dbd38eX"]} */ /** Set processed orders. @group Order management @authenticated @bodyParam APICallBackId string[] required List of APICallBackId need to set. Example: 987f3001-6364-4d7c-8b0c-daf29dbd38ec @responseField status integer request HTTP status @responseField status integer request HTTP status @responseField success boolean process successes @responseField apiVersion integer current API version @responseField processedTime DateTime process Timestamp @responseField data object collection of updated Order status. @responseField data.APICallBackId string Order update status ("updated" is ok). @responseFile 200 scenario="Has unprocessed orders" example/APISetProcessingResponse.json @responseFile 500 scenario="Request invalid Request Body data" example/APISetProcessingResponseErrorInvalidData.json @responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json */ public function setProcessed(Request $request) { $updateDate=Carbon::now(); $successData=[]; $header=parseAPIVersionFromNamespace(__NAMESPACE__); $header['processedTime']=$updateDate->format('Y.m.d. H:i:s.u'); Log::channel('api')->info('API request',['requestData'=>var_export($request->server(),true)]); Log::channel('api')->info('API request',['requestData'=>var_export($request->getContent(),true)]); $orderUUIds=json_decode($request->getContent()); //var_export($orderUUIds); //if(!property_exists($orderUUIds,'APICallBackId') || !is_array($orderUUIds->APICallBackId)){ if(!property_exists($orderUUIds,'APICallBackId') ){ return responder()->error('invalid data',$request->getContent())->respond(null,$header); } //var_export(property_exists($orderUUIds,'APICallBackId')); //die(); //return responder()->error('invalid data',gettype($orderUUIds)); //$orderUUIds=json_decode($request->getContent()); Log::channel('api')->info(var_export($orderUUIds,true)); foreach ($orderUUIds->APICallBackId as $APICallBackId){ if(is_array($APICallBackId)){ return responder()->error('invalid data' .__LINE__,$request->getContent())->respond(null,$header); } if($Order=OrderArchive::where('APICallBackId',$APICallBackId)->whereNull('APIConfirmed')->first()){ $Order->APIConfirmed=$updateDate; $Order->save(); $successData[$APICallBackId]='updated'; }else{ $successData[$APICallBackId]='invalid Id'; }; } $response=responder()->success($successData)->respond(null,$header); Log::channel('api')->info('API response',['responseBody'=>json_decode($response->getContent(), JSON_PRETTY_PRINT)]); return $response; } /** Display a server Status. @group General Interfaces @unauthenticated @responseField status integer request HTTP status @responseField success boolean process successes @responseField apiVersion integer current API version @responseField processedTime DateTime process Timestamp * @responseField data.APIStatus string API status state (up and down). @responseFile 200 scenario="Server status" example/APIServerStatusResponse.json */ public function status() { $header=parseAPIVersionFromNamespace(__NAMESPACE__); $header['processedTime']=Carbon::now()->format('Y.m.d. H:i:s.u'); return responder()->success(['APIStatus'=>'up'])->respond(null,$header); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { return 'hello'; } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }