public function getFilesMergedWithGroupsArray() { ClassLoader::import('application.model.product.ProductFileGroup'); return ProductFileGroup::mergeGroupsWithFields($this->getFileGroups()->toArray(), $this->getFiles()->toArray()); }
public static function getOrderFiles(ARSelectFilter $f) { $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isCancelled'), 0)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isPaid'), true)); //$f->mergeCondition(new EqualsCond(new ARFieldHandle('Product', 'type'), Product::TYPE_DOWNLOADABLE)); $f->setOrder(new ARFieldHandle('CustomerOrder', 'ID'), 'DESC'); $downloadable = ActiveRecordModel::getRecordSet('OrderedItem', $f, array('Product', 'CustomerOrder')); $fileArray = array(); foreach ($downloadable as &$item) { $files = $item->getProduct()->getFiles(); $itemFiles = array(); foreach ($files as $file) { if ($item->isDownloadable($file)) { $itemFiles[] = $file->toArray(); } } if (!$itemFiles) { continue; } $array = $item->toArray(); $array['Product']['Files'] = ProductFileGroup::mergeGroupsWithFields($item->getProduct()->getFileGroups()->toArray(), $itemFiles); foreach ($array['Product']['Files'] as $key => $file) { if (!isset($file['ID'])) { unset($array['Product']['Files'][$key]); } } $fileArray[] = $array; } return $fileArray; }