2222use Magento \Framework \GraphQl \Config \Element \Field ;
2323use Magento \Framework \GraphQl \Query \ResolverInterface ;
2424use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
25- use Magento \CatalogInventory \Api \Data \StockStatusInterface ;
2625use Magento \CatalogInventory \Api \StockStatusRepositoryInterface ;
2726use Magento \Quote \Model \Quote \Item ;
2827
@@ -39,7 +38,7 @@ class CheckAvailability implements ResolverInterface
3938 /**
4039 * @var StockStatusRepositoryInterface
4140 */
42- private $ stockStatusRepository ;
41+ private StockStatusRepositoryInterface $ stockStatusRepository ;
4342
4443 /**
4544 * CheckAvailability constructor
@@ -72,7 +71,7 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
7271 * @param Item $cartItem
7372 * @return bool
7473 */
75- private function checkProductQtyStatus ($ cartItem ):bool
74+ private function checkProductQtyStatus (Item $ cartItem ): bool
7675 {
7776 $ requestedQty = 0 ;
7877 $ previousQty = 0 ;
@@ -97,30 +96,28 @@ private function checkProductQtyStatus($cartItem):bool
9796 if ($ totalRequestedQty ) {
9897 $ requiredItemQty = $ requiredItemQty * $ totalRequestedQty ;
9998 }
100- if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
99+ if (! $ this ->isRequiredStockAvailable ($ productId , $ requiredItemQty )) {
101100 return false ;
102101 }
103102 }
104103 } else {
105104 $ requiredItemQty = $ requestedQty + $ previousQty ;
106105 $ productId = (int ) $ cartItem ->getProduct ()->getId ();
107- if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
108- return false ;
109- }
106+ return $ this ->isRequiredStockAvailable ($ productId , $ requiredItemQty );
110107 }
111108 return true ;
112109 }
113110
114111 /**
115- * Get product qty
112+ * Check if is required product available in stock
116113 *
117114 * @param int $productId
118115 * @param float $requiredQuantity
119116 * @return bool
120117 */
121- private function getProductStockStatus (int $ productId , float $ requiredQuantity ): bool
118+ private function isRequiredStockAvailable (int $ productId , float $ requiredQuantity ): bool
122119 {
123120 $ stock = $ this ->stockStatusRepository ->get ($ productId );
124- return ($ stock ->getQty () < $ requiredQuantity ) ? true : false ;
121+ return ($ stock ->getQty () >= $ requiredQuantity );
125122 }
126123}
0 commit comments