MOD EV3-444 Hibás számítás Hooreyca adatok, restore old e2e API controller

This commit is contained in:
E98Developer 2026-06-17 22:25:01 +02:00
parent 974d9b5da1
commit 1be584b080

View File

@ -5,36 +5,36 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\OrderArchive; use App\Models\OrderArchive;
use Carbon\Carbon; use Carbon\Carbon;
use Flugg\Responder\Http\MakesResponses;
use Flugg\Responder\Responder; use Flugg\Responder\Responder;
use Flugg\Responder\Http\MakesResponses;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;
class OrderController extends Controller class OrderController extends Controller
{ {
use MakesResponses; use MakesResponses;
public function convertItemCollectionToHooreycaAPIItems($ItemCollection) public function convertItemCollectionToHooreycaAPIItems($ItemCollection){
{
unset($ItemCollection->order_archive_id); unset($ItemCollection->order_archive_id);
$ItemCollection->HooreycaVolumen = null; $ItemCollection->HooreycaVolumen=null;
$ItemCollection->HooreycaUnitPrice = null; $ItemCollection->HooreycaUnitPrice=null;
if ($ItemCollection->HooreycaMultiplier !== null) { if($ItemCollection->HooreycaMultiplier!==null){
$ItemCollection->HooreycaVolumen = $ItemCollection->quantity * $ItemCollection->HooreycaMultiplier; $ItemCollection->HooreycaVolumen=$ItemCollection->quantity*$ItemCollection->HooreycaMultiplier;
$ItemCollection->HooreycaUnitPrice = ($ItemCollection->quantity * $ItemCollection->price) / $ItemCollection->HooreycaVolumen; $ItemCollection->HooreycaUnitPrice=($ItemCollection->quantity*$ItemCollection->unitMultiplier*$ItemCollection->price)/$ItemCollection->HooreycaVolumen;
} }
/* if(!in_array($ItemCollection->id,[91045,91046,91047,91042,91043,91044])){ /* if(!in_array($ItemCollection->id,[91045,91046,91047,91042,91043,91044])){
var_dump($ItemCollection->id); var_dump($ItemCollection->id);
var_dump(($ItemCollection->quantity*$ItemCollection->price)/($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier)); var_dump(($ItemCollection->quantity*$ItemCollection->price)/($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier));
die('hello'); die('hello');
}*/ }*/
// $ItemCollection->HooreycaSumPrice=($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier); //$ItemCollection->HooreycaSumPrice=($ItemCollection->quantity*$ItemCollection->HooreycaMultiplier);
// 'HooreycaSumPrice'=> //'HooreycaSumPrice'=>
return $ItemCollection; return $ItemCollection;
/* /*
Rendelő felületről adatok biztosítása Rendelő felületről adatok biztosítása
- Cikk kódja - Cikk kódja
@ -46,47 +46,54 @@ public function convertItemCollectionToHooreycaAPIItems($ItemCollection)
- Rendelt mennyiség - Rendelt mennyiség
- Megrendelt cikk nettó értéke - Megrendelt cikk nettó értéke
*/ */
return $ItemCollection->map(function ($item) { return $ItemCollection->map(function ($item){
return [ return[
'id' => $item->id, 'id'=>$item->id,
'hooreycaId' => $item->hooreycaId, // - Cikk kódja 'hooreycaId'=>$item->hooreycaId, //- Cikk kódja
'HooreycaUnit' => $item->HooreycaUnit, 'HooreycaUnit'=>$item->HooreycaUnit,
'HooreycaMultiplier' => $item->HooreycaMultiplier, 'HooreycaMultiplier'=>$item->HooreycaMultiplier,
'productName' => $item->name.'aaaaaaaaaaaa', "productName"=>$item->name.'aaaaaaaaaaaa',
'hooreycaId' => $item->hooreycaId, 'hooreycaId'=>$item->hooreycaId,
'productUnit' => $item->productUnit, "productUnit"=>$item->productUnit,
'sellerUnit' => $item->sellerUnit, "sellerUnit"=>$item->sellerUnit,
'unitMultiplier' => $item->unitMultiplier, // - Egységszorzó (árlista K oszlop) "unitMultiplier"=>$item->unitMultiplier, //- Egységszorzó (árlista K oszlop)
'amountUnit' => $item->amountUnit, "amountUnit"=>$item-> amountUnit,
'quantity' => $item->quantity, // - Rendelt mennyiség "quantity"=>$item->quantity, //- Rendelt mennyiség
'price' => $item->price, // - Megrendelt cikk nettó értéke "price"=>$item->price,//- Megrendelt cikk nettó értéke
'HooreycaVolumen' => $item->quantity * $item->HooreycaMultiplier, 'HooreycaVolumen'=>$item->quantity*$item->HooreycaMultiplier,
'HooreycaSumPrice' => ($item->quantity * $item->price) / ($item->quantity * $item->HooreycaMultiplier), 'HooreycaSumPrice'=>($item->quantity*$item->price)/($item->quantity*$item->HooreycaMultiplier),
]; ];
}); });
} }
public function convertOrderToHooreycaAPI($order,$key){
public function convertOrderToHooreycaAPI($order, $key)
{
/* /*
Rendelő felületről adatok biztosítása Rendelő felületről adatok biztosítása
- szállító kódja supplier.hooreycaId - szállító kódja supplier.hooreycaId
- Szállítási dátum deliveryDate - Szállítási dátum deliveryDate
- Üzlet kódja profit_center.hooreycaId - Üzlet kódja profit_center.hooreycaId
*/ */
$order->APICallBackId = (string) \Str::orderedUuid(); $order->APICallBackId=(string)\Str::orderedUuid();
$order->save(); $order->save();
$order->supplierHooreycaId = $order->supplier->hooreycaId; try {
$order->supplierName = $order->supplier->name; $order->supplierHooreycaId=$order->supplier->hooreycaId;
$order->profitCenterHooreycaId = $order->profitCenter->hooreycaId; }catch (\Exception $e){
$order->profitCenterName = $order->profitCenter->name;
$order->items = $order->itemsAPISpecial->transform([$this, 'convertItemCollectionToHooreycaAPIItems']);
unset($order->supplier,$order->profitCenter,$order->itemsAPISpecial);
}
$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; return $order;
} }
/** /**
Display a listing of the unprocessed orders. Display a listing of the unprocessed orders.
@ -103,66 +110,82 @@ public function convertOrderToHooreycaAPI($order, $key)
@responseFile 200 scenario="Has unprocessed orders" example/APIUnProcessingResponse.json @responseFile 200 scenario="Has unprocessed orders" example/APIUnProcessingResponse.json
@responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json @responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json
*/ */
public function unProcessed(Request $request, Responder $responder) public function unProcessed(Request $request,Responder $responder)
{ {
Log::channel('api')->info('API request', ['requestData' => var_export($request->server(), true)]); Log::channel('api')->info('API request',['requestData'=>var_export($request->server(),true)]);
$updateDate = Carbon::now(); $updateDate=Carbon::now();
$OrderCollection = OrderArchive::with(['supplier' => function ($query) { $OrderCollection=OrderArchive::with(['supplier'=>function ($query){
$query->select('id', 'name', 'hooreycaId'); $query->select('id','name','hooreycaId');
}, 'profitCenter' => function ($query) { //$query->where('hooreycaDataActive',1);
$query->select('id', 'name', 'hooreycaId'); },'profitCenter'=>function ($query){
}, 'itemsAPISpecial' => function ($query) { $query->select('id','name','hooreycaId');
// $query->select('id','order_archive_id'); $query->where('hooreycaDataActive',1);
},'itemsAPISpecial'
=>function ($query){
//$query->select('id','order_archive_id');
$query->select( $query->select(
'order_archive_id', 'order_archive_id',
'id', 'id',
'hooreycaId', // - Cikk kódja 'hooreycaId', //- Cikk kódja
'name', "name",
'hooreycaId', 'hooreycaId',
'HooreycaUnit', 'HooreycaUnit',
'HooreycaMultiplier', 'HooreycaMultiplier',
'productUnit', "productUnit",
'sellerUnit', "sellerUnit",
'unitMultiplier', // - Egységszorzó (árlista K oszlop) "unitMultiplier", //- Egységszorzó (árlista K oszlop)
'amountUnit', "amountUnit",
'quantity', // - Rendelt mennyiség "quantity", //- Rendelt mennyiség
'price' "price"
); );
$query->whereNotNull('hooreycaId');
$query->where('hooreycaId','<>','');
}, },
])->select( ])->select(
'id', 'id',
'supplier_id', 'supplier_id',
'profit_center_id', 'profit_center_id',
'humanId', 'humanId',
'deliveryDate', 'deliveryDate',
'confirmed', ) 'confirmed',)
// ->whereNulll('APIConfirmed') //->whereNulll('APIConfirmed')
->whereNotNull('confirmed') ->whereNotNull('confirmed')
->whereNull('APIConfirmed') ->whereNull('APIConfirmed')
->orderBy('id', 'desc')->paginate(3); ->orderBy('id','desc')->paginate(3)
;
$ret[] = get_debug_type($OrderCollection); $filteredProfitCentersOrder=$OrderCollection->filter(function ($v) {
return $v->profitCenter!=null;
});
$OrderCollection->setCollection($filteredProfitCentersOrder);
$OrderCollection->transform([$this, 'convertOrderToHooreycaAPI']); /* where condition not working on paginated eloquent collection
dd($OrderCollection->toArray());
$OrderCollection=$OrderCollection->whereNotNull('profit_center');
$updateId = $OrderCollection->pluck('id'); */
$header = parseAPIVersionFromNamespace(__NAMESPACE__); $ret[]=get_debug_type($OrderCollection);
$header['processedTime'] = $updateDate->format('Y.m.d. H:i:s.u'); $OrderCollection->transform([$this,'convertOrderToHooreycaAPI']);
$response = responder()->success($OrderCollection)->respond(null, $header);
$ret = []; $updateId=$OrderCollection->pluck('id');
$ret[] = $OrderCollection->pluck('id'); $header=parseAPIVersionFromNamespace(__NAMESPACE__);
$ret[] = OrderArchive::whereIn('id', $OrderCollection->pluck('id')); $header['processedTime']=$updateDate->format('Y.m.d. H:i:s.u');
$response=responder()->success($OrderCollection)->respond(null,$header);
OrderArchive::whereIn('id', $updateId)->update(['APILastGetting' => $updateDate]); $ret=[];
$ret[] = OrderArchive::whereIn('id', $updateId)->update(['APILastGetting' => $updateDate]); $ret[]=$OrderCollection->pluck('id');
$ret[]=OrderArchive::whereIn('id',$OrderCollection->pluck('id'));
Log::channel('api')->info('Update APILastGetting ', ['Id' => $updateId->toArray(), 'Date' => $updateDate]); OrderArchive::whereIn('id',$updateId)->update(['APILastGetting'=>$updateDate]);
$ret[]=OrderArchive::whereIn('id',$updateId)->update(['APILastGetting'=>$updateDate]);
$ret[] = $response->getContent(); Log::channel('api')->info('Update APILastGetting ',['Id'=>$updateId->toArray(),'Date'=>$updateDate]);
$ret[] = var_export($request->server(), true);
Log::channel('api')->info('API response', ['responseBody' => json_decode($response->getContent(), JSON_PRETTY_PRINT)]); $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; return $response;
/*erorr teszthez DB error /*erorr teszthez DB error
@ -170,12 +193,12 @@ public function unProcessed(Request $request, Responder $responder)
*/ */
} }
/* /*
* @bodyParam [] Example:["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987ee197-5293-48de-a488-3c9a05229bb6"] * @bodyParam [] Example:["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987ee197-5293-48de-a488-3c9a05229bb6"]
localhost key 2|hqN0ifD9OP0vIAQZRPubcZ7x5W8qw49XKeFk9WJs localhost key 2|hqN0ifD9OP0vIAQZRPubcZ7x5W8qw49XKeFk9WJs
d2d key "1|tCtfKT9hAjGt213iuluWiHEvlyAK2KqtZmblQx8Y" d2d key "1|tCtfKT9hAjGt213iuluWiHEvlyAK2KqtZmblQx8Y"
{"APICallBackId":["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987f3001-6364-4d7c-8b0c-daf29dbd38eX"]} {"APICallBackId":["987f3001-6364-4d7c-8b0c-daf29dbd38ec","987f3001-6364-4d7c-8b0c-daf29dbd38eX"]}
*/ */
/** /**
Set processed orders. Set processed orders.
@ -195,42 +218,42 @@ public function unProcessed(Request $request, Responder $responder)
@responseFile 200 scenario="Has unprocessed orders" example/APISetProcessingResponse.json @responseFile 200 scenario="Has unprocessed orders" example/APISetProcessingResponse.json
@responseFile 500 scenario="Request invalid Request Body data" example/APISetProcessingResponseErrorInvalidData.json @responseFile 500 scenario="Request invalid Request Body data" example/APISetProcessingResponseErrorInvalidData.json
@responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json @responseFile 401 scenario="Request unauthenticated" example/APIUnauthenticated.json
*/ */
public function setProcessed(Request $request) public function setProcessed(Request $request)
{ {
$updateDate = Carbon::now(); $updateDate=Carbon::now();
$successData = []; $successData=[];
$header = parseAPIVersionFromNamespace(__NAMESPACE__); $header=parseAPIVersionFromNamespace(__NAMESPACE__);
$header['processedTime'] = $updateDate->format('Y.m.d. H:i:s.u'); $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->server(),true)]);
Log::channel('api')->info('API request', ['requestData' => var_export($request->getContent(), true)]); Log::channel('api')->info('API request',['requestData'=>var_export($request->getContent(),true)]);
$orderUUIds = json_decode($request->getContent()); $orderUUIds=json_decode($request->getContent());
// var_export($orderUUIds); //var_export($orderUUIds);
// if(!property_exists($orderUUIds,'APICallBackId') || !is_array($orderUUIds->APICallBackId)){ //if(!property_exists($orderUUIds,'APICallBackId') || !is_array($orderUUIds->APICallBackId)){
if (! property_exists($orderUUIds, 'APICallBackId')) { if(!property_exists($orderUUIds,'APICallBackId') ){
return responder()->error('invalid data', $request->getContent())->respond(null, $header); return responder()->error('invalid data',$request->getContent())->respond(null,$header);
} }
// var_export(property_exists($orderUUIds,'APICallBackId')); //var_export(property_exists($orderUUIds,'APICallBackId'));
// die(); //die();
// return responder()->error('invalid data',gettype($orderUUIds)); //return responder()->error('invalid data',gettype($orderUUIds));
// $orderUUIds=json_decode($request->getContent()); //$orderUUIds=json_decode($request->getContent());
Log::channel('api')->info(var_export($orderUUIds, true)); Log::channel('api')->info(var_export($orderUUIds,true));
foreach ($orderUUIds->APICallBackId as $APICallBackId) { foreach ($orderUUIds->APICallBackId as $APICallBackId){
if (is_array($APICallBackId)) { if(is_array($APICallBackId)){
return responder()->error('invalid data'.__LINE__, $request->getContent())->respond(null, $header); return responder()->error('invalid data' .__LINE__,$request->getContent())->respond(null,$header);
} }
if ($Order = OrderArchive::where('APICallBackId', $APICallBackId)->whereNull('APIConfirmed')->first()) { if($Order=OrderArchive::where('APICallBackId',$APICallBackId)->whereNull('APIConfirmed')->first()){
$Order->APIConfirmed = $updateDate; $Order->APIConfirmed=$updateDate;
$Order->save(); $Order->save();
$successData[$APICallBackId] = 'updated'; $successData[$APICallBackId]='updated';
} else { }else{
$successData[$APICallBackId] = 'invalid Id'; $successData[$APICallBackId]='invalid Id';
} };
} }
$response = responder()->success($successData)->respond(null, $header); $response=responder()->success($successData)->respond(null,$header);
Log::channel('api')->info('API response', ['responseBody' => json_decode($response->getContent(), JSON_PRETTY_PRINT)]); Log::channel('api')->info('API response',['responseBody'=>json_decode($response->getContent(), JSON_PRETTY_PRINT)]);
return $response; return $response;
} }
@ -246,13 +269,11 @@ public function setProcessed(Request $request)
* *
@responseField data.APIStatus string API status state (up and down). @responseField data.APIStatus string API status state (up and down).
@responseFile 200 scenario="Server status" example/APIServerStatusResponse.json @responseFile 200 scenario="Server status" example/APIServerStatusResponse.json
*/ */ public function status()
public function status()
{ {
$header = parseAPIVersionFromNamespace(__NAMESPACE__); $header=parseAPIVersionFromNamespace(__NAMESPACE__);
$header['processedTime'] = Carbon::now()->format('Y.m.d. H:i:s.u'); $header['processedTime']=Carbon::now()->format('Y.m.d. H:i:s.u');
return responder()->success(['APIStatus'=>'up'])->respond(null,$header);
return responder()->success(['APIStatus' => 'up'])->respond(null, $header);
} }
/** /**
@ -268,6 +289,7 @@ public function index()
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
* *
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(Request $request)
@ -278,9 +300,10 @@ public function store(Request $request)
/** /**
* Display the specified resource. * Display the specified resource.
* *
* @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function show(int $id) public function show($id)
{ {
// //
} }
@ -288,9 +311,11 @@ public function show(int $id)
/** /**
* Update the specified resource in storage. * Update the specified resource in storage.
* *
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, int $id) public function update(Request $request, $id)
{ {
// //
} }
@ -298,9 +323,10 @@ public function update(Request $request, int $id)
/** /**
* Remove the specified resource from storage. * Remove the specified resource from storage.
* *
* @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy(int $id) public function destroy($id)
{ {
// //
} }