public function index() { $this->loadLanguageFile('backend/abstract/ActiveGridQuickEdit'); $this->updateApplicationUri(); // order stats $conditions = array('last' => new EqualsOrMoreCond(new ARFieldHandle('CustomerOrder', 'dateCompleted'), time() - 86400), 'new' => new IsNullCond(new ARFieldHandle('CustomerOrder', 'status')), 'processing' => new EqualsCond(new ARFieldHandle('CustomerOrder', 'status'), CustomerOrder::STATUS_PROCESSING), 'total' => new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); foreach ($conditions as $key => $cond) { $f = new ARSelectFilter($cond); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('CustomerOrder', 'isCancelled'), false)); $orderCount[$key] = ActiveRecordModel::getRecordCount('CustomerOrder', $f); } // messages $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('OrderNote', 'isAdmin'), 0)); $f->mergeCondition(new EqualsCond(new ARFieldHandle('OrderNote', 'isRead'), 0)); $orderCount['messages'] = ActiveRecordModel::getRecordCount('OrderNote', $f); // inventory stats $lowStock = new EqualsOrLessCond(new ARFieldHandle('Product', 'stockCount'), $this->config->get('LOW_STOCK')); $lowStock->addAnd(new MoreThanCond(new ARFieldHandle('Product', 'stockCount'), 0)); $conditions = array('lowStock' => $lowStock, 'outOfStock' => new EqualsOrLessCond(new ARFieldHandle('Product', 'stockCount'), 0)); foreach ($conditions as $key => $cond) { $cond->addAnd(new EqualsCond(new ARFieldHandle('Product', 'isEnabled'), true)); $inventoryCount[$key] = ActiveRecordModel::getRecordCount('Product', new ARSelectFilter($cond)); } // overall stats $rootCat = Category::getRootNode(); $rootCat->load(); $response = new ActionResponse(); $response->set('orderCount', $orderCount); $response->set('inventoryCount', $inventoryCount); $response->set('rootCat', $rootCat->toArray()); $response->set('thisMonth', date('m')); $response->set('lastMonth', date('Y-m', strtotime(date('m') . '/15 -1 month'))); $response->set('ordersLast24', $this->getOrderCount('-24 hours', 'now')); $response->set('ordersThisWeek', $this->getOrderCount('w:Monday', 'now')); $response->set('ordersThisMonth', $this->getOrderCount(date('m') . '/1', 'now')); $response->set('ordersLastMonth', $this->getOrderCount($response->get('lastMonth') . '-1', date('m') . '/1')); $response->set('lastOrders', $this->getLastOrders()); return $response; }
public function setFormResponse(ActionResponse $response, Form $form, $prefix = '') { $specFields = $this->owner->getSpecification()->getSpecificationFieldSet(ActiveRecordModel::LOAD_REFERENCES); $specFieldArray = $specFields->toArray(); // set select values $selectors = EavFieldCommon::getSelectorValueTypes(); foreach ($specFields as $key => $field) { if (in_array($field->type->get(), $selectors)) { $values = $field->getValuesSet()->toArray(); $specFieldArray[$key]['values'] = array('' => ''); foreach ($values as $value) { $specFieldArray[$key]['values'][$value['ID']] = isset($value['value_lang']) ? $value['value_lang'] : $value['value']; } } } // arrange SpecFields's into groups $specFieldsByGroup = array(); $prevGroupID = -1; $groupClass = $this->getFieldClass() . 'Group'; foreach ($specFieldArray as $field) { $groupID = isset($field[$groupClass]['ID']) ? $field[$groupClass]['ID'] : ''; if ((int) $groupID && $prevGroupID != $groupID) { $prevGroupID = $groupID; } $specFieldsByGroup[$groupID][] = $field; } // get multi language spec fields $multiLingualSpecFields = array(); foreach ($specFields as $key => $field) { if ($field->isTextField()) { $multiLingualSpecFields[] = $field->toArray(); } } if (!$prefix) { $response->set("specFieldList", $specFieldsByGroup); } $response->set("groupClass", $groupClass); $response->set("multiLingualSpecFieldss", $multiLingualSpecFields); // set fields by prefix $prefixed = $response->get("specFieldList_prefix", array()); $prefixed[$prefix] = $specFieldsByGroup; $response->set("specFieldList_prefix", $prefixed); $this->owner->load(); // set fields by owner if ($this->owner instanceof EavObject && ($owner = $this->owner->getOwner())) { $byOwner = $response->get("specFieldListByOwner", array()); $byOwner[get_class($owner)][$owner->getID()] = $specFieldsByGroup; $response->set("specFieldListByOwner", $byOwner); } $form->setData($this->getFormData($prefix)); //$this->setFormValidator($form->getValidator()); }