22
22
use Magento \Framework \GraphQl \Config \Element \Field ;
23
23
use Magento \Framework \GraphQl \Query \ResolverInterface ;
24
24
use Magento \Framework \GraphQl \Schema \Type \ResolveInfo ;
25
- use Magento \CatalogInventory \Api \Data \StockStatusInterface ;
26
25
use Magento \CatalogInventory \Api \StockStatusRepositoryInterface ;
27
26
use Magento \Quote \Model \Quote \Item ;
28
27
@@ -39,7 +38,7 @@ class CheckAvailability implements ResolverInterface
39
38
/**
40
39
* @var StockStatusRepositoryInterface
41
40
*/
42
- private $ stockStatusRepository ;
41
+ private StockStatusRepositoryInterface $ stockStatusRepository ;
43
42
44
43
/**
45
44
* CheckAvailability constructor
@@ -72,7 +71,7 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
72
71
* @param Item $cartItem
73
72
* @return bool
74
73
*/
75
- private function checkProductQtyStatus ($ cartItem ):bool
74
+ private function checkProductQtyStatus (Item $ cartItem ): bool
76
75
{
77
76
$ requestedQty = 0 ;
78
77
$ previousQty = 0 ;
@@ -97,30 +96,28 @@ private function checkProductQtyStatus($cartItem):bool
97
96
if ($ totalRequestedQty ) {
98
97
$ requiredItemQty = $ requiredItemQty * $ totalRequestedQty ;
99
98
}
100
- if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
99
+ if (! $ this ->isRequiredStockAvailable ($ productId , $ requiredItemQty )) {
101
100
return false ;
102
101
}
103
102
}
104
103
} else {
105
104
$ requiredItemQty = $ requestedQty + $ previousQty ;
106
105
$ productId = (int ) $ cartItem ->getProduct ()->getId ();
107
- if ($ this ->getProductStockStatus ($ productId , $ requiredItemQty )) {
108
- return false ;
109
- }
106
+ return $ this ->isRequiredStockAvailable ($ productId , $ requiredItemQty );
110
107
}
111
108
return true ;
112
109
}
113
110
114
111
/**
115
- * Get product qty
112
+ * Check if is required product available in stock
116
113
*
117
114
* @param int $productId
118
115
* @param float $requiredQuantity
119
116
* @return bool
120
117
*/
121
- private function getProductStockStatus (int $ productId , float $ requiredQuantity ): bool
118
+ private function isRequiredStockAvailable (int $ productId , float $ requiredQuantity ): bool
122
119
{
123
120
$ stock = $ this ->stockStatusRepository ->get ($ productId );
124
- return ($ stock ->getQty () < $ requiredQuantity ) ? true : false ;
121
+ return ($ stock ->getQty () >= $ requiredQuantity );
125
122
}
126
123
}
0 commit comments