Посчтать количество товаров без учета модификаций

#
Посчтать количество товаров без учета модификаций
Доброго времени суток. Возник вопрос как вывести число товаров исключая подсчет модификаций.
Core_Entity::factory('Shop', 3)->Shop_Items->getCount(); - выдает количество всех товаров (товары+модификации)
Подскажи плз
Модератор
#
Re: Посчтать количество товаров без учета модификаций
Core_Entity::factory('Shop', 3)->Shop_Items->getCountByModification_id(0);
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Посчтать количество товаров без учета модификаций
alexander.egorov писал(а):
Core_Entity::factory('Shop', 3)->Shop_Items->getCountByModification_id(0);

а как без модификаций и без ярлыков посчитать?
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Модератор
#
Re: Посчтать количество товаров без учета модификаций
Puma,
здесь уже через queryBuilder с двумя ограничениями, на modification_id = 0 и shortcut_id = 0
#
Re: Посчтать количество товаров без учета модификаций
а как именно подсчет то вести? вот как в этой инстуркции?


Подсчет количества найденных объектов
Для подсчета количества найденных элементов при использовании ограничений выборки limit()/offset() используется метод sqlCalcFoundRows(). До вызова findAll() необходимо загрузить структуру модели через getTableColumns(), в противном случае запрос на получение структуры модели может стать между запросом на выбору и FOUND_ROWS()


$oBooks = Core_Entity::factory('Book');

// Загружаем структуру модели до FOUND_ROWS()
Core_Entity::factory('Book')->getTableColumns();

// Включаем подсчет количества всех объектов, подходящих под ограничения, ограничиваем выборку
$oBooks->queryBuilder()
    ->sqlCalcFoundRows()
    ->offset(0)
    ->limit(10);

// Выбираем элементы
$aBooks = $oBooks->findAll();

// Подсчет количества найденных элементов
$row = Core_QueryBuilder::select(array('FOUND_ROWS()', 'count'))->execute()->asAssoc()->current();
echo "<p>Всего найдено: " . $row['count'];

// Вывод найденных объектов
foreach ($aBooks as $oBook)
{
   // do something
   echo "<p>" . $oBook->name . "</p>";
}

че то у  меня не то считает
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Модератор
#
Re: Посчтать количество товаров без учета модификаций
Puma,
вы свой код не показали, который у вас неправильно считает.
#
Re: Посчтать количество товаров без учета модификаций
hostcms писал(а):
вы свой код не показали, который у вас неправильно считает.

         <?php
         
   $Shop_Controller_Show = new Shop_Controller_Extend(
      Core_Entity::factory('Shop', 3)
   );
            Core_Entity::factory('Shop')->getTableColumns();

            $Shop_Controller_Show->shopItems()
      ->queryBuilder()
       ->sqlCalcFoundRows()
         // Модификации и остатки на складах модификаций
   ->leftJoin(array('shop_items', 'modifications'), 'modifications.modification_id', '=', 'shop_items.id')
   ->leftJoin(array('shop_warehouse_items', 'modifications_shop_warehouse_items'), 'modifications_shop_warehouse_items.shop_item_id', '=', 'modifications.id')
   // Остатки на складах основного отвара
   ->leftJoin('shop_warehouse_items', 'shop_warehouse_items.shop_item_id', '=', 'shop_items.id')
   // Есть остатки на основном складе
   ->having('SUM(shop_warehouse_items.count)', '>', 0)
   // Или
   ->setOr()
   // Есть остатки на складах у модификаций
   ->having('SUM(modifications_shop_warehouse_items.count)', '>', 0)
   ->groupBy('shop_items.id')
      ->setAnd()
      ->where('shop_items.modification_id', '=', 0)
      ->where('shop_items.shortcut_id', '=', 0)
      ->where('shop_items.deleted', '=', 0)
      ->where('shop_items.active', '=', 1)
               ->limit(2000)
      ;
            $row = Core_QueryBuilder::select(array('FOUND_ROWS()', 'count'))->execute()->asAssoc()->current();
//echo "<p>Всего найдено: " . $row['count'];
         ?>
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Посчтать количество товаров без учета модификаций
Puma,
Ваш вопрос звучит:
Puma писал(а):
как без модификаций и без ярлыков посчитать?

По коду видно что Вы хотите при этом проверить остатки на складе родительских и модификаций на наличие?
Тогда это вы хотите посчитать с условием остатка на складе?
- При этом хотите учесть остатки по модификациям но в тоже время их исключить из подсчета.
Или запрос с ->limit(2000) к этому не относиться?
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация