Количеством товара в группах магазина

#
Количеством товара в группах магазина
Доброго времени суток.
Не знаю, актуален ли вопрос с количеством товара в группах магазина (общем и внутри группы), потому что только недавно начал знакомиться с 6 версией. В чём суть вопроса:
когда перемещаешь товар из одной группы в другую, то количество items_count и items_total_count, не обновляется. Как решение - постоянно использовать функционал "Пересчитать", не особо удобно.

Посмотрел, что в модели группы соответствующий метод присутствует, а именно modifyCountItems, но в методе move класса Shop_Item_Model он не задействован. Для решения проблемы сделал следующее:

1. Немного изменил метод move класса Shop_Item_Model:

public function move($iShopGroupId)
{
   $this->Shop_Group->decCountItems(); // уменьшаем кол-во товара в текущей группе
   $this->shop_group_id = $iShopGroupId;
   
   $return = $this->save();
   $this->Shop_Group->incCountItems(); //  увеличиваем кол-во товара в новой группе
   return $return;
}


2. И в методе Shop_Group_Model.modifyCountItems добавил проверку на первую итерацию рекурсии, так как изменение количества товара внутри группы (не путать с общим) не должно затрагивать родительские группы:

public function modifyCountItems($int = 1, $first = true)
{
   $first && $this->items_count += $int;
   $this->items_total_count += $int;
   $this->save();

   if ($this->parent_id != 0 /*&& $this->parent_id != $this->id*/ && !is_null($this->Shop_Group->id))
   {
      $this->Shop_Group->modifyCountItems($int, false);
   }
   return $this;
}


Проблема пропала. Надеюсь, кому-то это понадобится.
творческая студия Auris
Авторизация