public function updateAttributes($productIds, $attrData, $storeId)
 {
     if ($attrData['status'] == Aitoc_Aitpermissions_Model_Rewrite_CatalogProductStatus::STATUS_AWAITING) {
         Mage::throwException(Mage::helper('core')->__('This status cannot be used in mass action'));
         return $this;
     }
     if (isset($attrData['status']) && $this->_isUpdatingStatus() && Mage::getSingleton('aitpermissions/role')->isPermissionsEnabled() && Mage::getStoreConfig('admin/su/enable')) {
         $productIdsNoApprove = $this->_getProductIdsToApprove($productIds);
         foreach ($productIdsNoApprove as $productId) {
             Mage::getModel('aitpermissions/approve')->approve($productId, $attrData['status']);
         }
         $arrayDiff = array_diff($productIds, $productIdsNoApprove);
         if (count($arrayDiff) > 0) {
             $productIds = $productIdsNoApprove;
             Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('core')->__('The product you are trying to change the status is awaiting Super-Admin approve.No changes are applied to this product(s).'));
         }
     }
     return parent::updateAttributes($productIds, $attrData, $storeId);
 }
Esempio n. 2
0
 /**
  * @test
  */
 public function testCatalogProductSaveAfterMassAction()
 {
     $this->_fpc->save('product1', 'product1_cache_id', array(sha1('product_1')));
     $this->_fpc->save('product2', 'product2_cache_id', array(sha1('product_2')));
     $this->_fpc->save('product3', 'product3_cache_id', array(sha1('product_3')));
     $event = new Mage_Index_Model_Event();
     $productAction = new Mage_Catalog_Model_Product_Action();
     $productAction->setProductIds(array(2, 3));
     $event->setType('mass_action');
     $event->setEntity('catalog_product');
     $event->setDataObject($productAction);
     Mage::dispatchEvent('model_save_after', array('object' => $event));
     $this->assertEquals('product1', $this->_fpc->load('product1_cache_id'));
     $this->assertFalse($this->_fpc->load('product2_cache_id'));
     $this->assertFalse($this->_fpc->load('product3_cache_id'));
 }