mivita/app/Repositories/ShopApiRepository.php
2022-07-15 21:21:56 +02:00

83 lines
No EOL
2.3 KiB
PHP

<?php
namespace App\Repositories;
use App\Models\ShoppingOrder;
use App\Services\ShopApiOrderCart;
class ShopApiRepository extends BaseRepository {
private $shopApiOrderCart;
public function __construct()
{
//$this->model = $model;
}
public function order($data)
{
$this->shopApiOrderCart = new ShopApiOrderCart();
$this->performOrderActionList($data, 0);
return $this->shopApiOrderCart;
}
public function remove($data){
$this->performActionList($data, 5);
return true;
}
public function reset($data){
$this->performActionList($data, 0);
return true;
}
public function checkout($data){
$this->shopApiOrderCart = new ShopApiOrderCart();
$this->performOrderCheckoutList($data, 1);
return $this->shopApiOrderCart;
}
private function performActionList($data, $status){
if(isset($data['api_action_list'])){
foreach($data['api_action_list'] as $orderItemId=>$v){
$ShoppingOrder = ShoppingOrder::findOrFail($orderItemId);
$ShoppingOrder->api_status = $status;
$ShoppingOrder->save();
}
}
}
private function performOrderActionList($data, $status){
if(isset($data['api_action_list'])){
foreach($data['api_action_list'] as $orderItemId=>$v){
$ShoppingOrder = ShoppingOrder::findOrFail($orderItemId);
$this->shopApiOrderCart->add($ShoppingOrder);
$ShoppingOrder->api_status = $status; //<- no status change is the show list
$ShoppingOrder->save();
}
$this->shopApiOrderCart->calculate();
return $this->shopApiOrderCart;
}
}
private function performOrderCheckoutList($data, $status){
if(isset($data['api_action_list'])){
foreach($data['api_action_list'] as $k=>$orderItemId){
$ShoppingOrder = ShoppingOrder::findOrFail($orderItemId);
$this->shopApiOrderCart->add($ShoppingOrder);
$ShoppingOrder->api_status = $status;
$ShoppingOrder->save();
}
$this->shopApiOrderCart->calculate();
$this->shopApiOrderCart->store();
return $this->shopApiOrderCart;
}
}
}