Eccube\Service\ShoppingService::setStockUpdate PHP Method

setStockUpdate() public method

在庫情報の更新
public setStockUpdate ( $em, Order $Order )
$em トランザクション制御されているEntityManager
$Order Eccube\Entity\Order 受注情報
    public function setStockUpdate($em, Order $Order)
    {
        $orderDetails = $Order->getOrderDetails();
        // 在庫情報更新
        foreach ($orderDetails as $orderDetail) {
            // 在庫が無制限かチェックし、制限ありなら在庫数を更新
            if ($orderDetail->getProductClass()->getStockUnlimited() == Constant::DISABLED) {
                $productStock = $em->getRepository('Eccube\\Entity\\ProductStock')->find($orderDetail->getProductClass()->getProductStock()->getId());
                // 在庫情報の在庫数を更新
                $stock = $productStock->getStock() - $orderDetail->getQuantity();
                $productStock->setStock($stock);
                // 商品規格情報の在庫数を更新
                $orderDetail->getProductClass()->setStock($stock);
            }
        }
    }