Example #1
0
 private function _getInvalidateOptions($product, $post)
 {
     $helper = Mage::helper('mageworx_customoptions');
     $invalidOpValues = array();
     if (isset($post['options'])) {
         $options = $post['options'];
     } else {
         return $invalidOpValues;
     }
     foreach ($options as $optionId => $option) {
         $productOption = $product->getOptionById($optionId);
         if (!$productOption->getQntyInput()) {
             continue;
         }
         $optionType = $productOption->getType();
         if ($productOption->getGroupByType($optionType) != Mage_Catalog_Model_Product_Option::OPTION_GROUP_SELECT) {
             continue;
         }
         if (!is_array($option)) {
             $option = array($option);
         }
         foreach ($option as $optionTypeId) {
             if (!$optionTypeId) {
                 continue;
             }
             $value = $productOption->getValueById($optionTypeId);
             if (!$value) {
                 continue;
             }
             if (!is_object($value)) {
                 $value = new Varien_Object($value);
             }
             $minQty = $helper->removeQtyZeroes($value->getCustomoptionsMinQty());
             $maxQty = $helper->removeQtyZeroes($value->getCustomoptionsMaxQty());
             $optionQty = $helper->getPostCustomoptionQty($product, $productOption, $value, $post);
             //$optionQty = $this->_getPostQty($productOption, $value, $post);
             if ($helper->allowedMinQtyInCart() && is_numeric($minQty) && $optionQty < $minQty) {
                 $invalidOpValues['invalid_min'][] = $value;
             }
             if ($helper->allowedMaxQtyInCart() && is_numeric($maxQty) && $optionQty > $maxQty) {
                 $invalidOpValues['invalid_max'][] = $value;
             }
         }
     }
     return $invalidOpValues;
 }