public static function usedBy($search_data = null, &$errors = array(), $defaults = null, $params = array()) { $search = new SelectorItemSearch($defaults); $search->addSearchField('target_id', 'Target', 'hidden', '', 'hidden'); // Search by Product $config = SelectorCollection::getTypeDetails($params['type']); $search->addSearchField('parent_id', implode('/', $config['itemFields']), 'treesearch', -1, 'basic'); if (empty($search_data)) { $search_data = null; } $search->setSearchData($search_data, $errors, 'selectProduct'); // Populate the parent_id field using the last selected value // it will be -1 if no previous selected value $parent_id = $search->getValue('parent_id'); $cc = new ConstraintChain(); if ($parent_id != '-1') { $cc->add(new Constraint('parent_id', '=', $parent_id)); } else { $cc->add(new Constraint('parent_id', 'IS', 'NULL')); } $model = new DataObject('so_product_selector'); $options = array($parent_id => 'Select an option'); $options += $model->getAll($cc); $search->setOptions('parent_id', $options); if ($parent_id != '-1') { $data = array('target_id' => $search->getValue('target_id')); $search->setBreadcrumbs('parent_id', $model, 'parent_id', $parent_id, 'name', 'description', $data); } return $search; }
public function __construct($module = null, $action = null) { parent::__construct($module, $action); $this->module = $module; $configdetails = SelectorCollection::getTypeDetails($module); // set parent controller variables $this->itemFields = $configdetails['itemFields']; $this->targetFields = $configdetails['targetFields']; $this->itemTableName = $configdetails['itemTableName']; $this->itemOverviewName = $configdetails['itemOverviewName']; $this->title = $configdetails['title']; $this->targetModel = $configdetails['targetModel']; $this->setTemplateObject(); $this->linkTableName = $configdetails['linkTableName']; }
public static function selectProduct($search_data = null, &$errors = array(), $defaults = null) { $search = new sordersSearch($defaults); // Search by Customer $customer = DataObjectFactory::Factory('SLCustomer'); $customers = $customer->getAll(null, false, true, '', ''); $options = array('NULL' => 'None'); $options += $customers; if (!isset($search->defaults['slmaster_id'])) { $search->defaults['slmaster_id'] = key($options); } $search->addSearchField('slmaster_id', 'Customer', 'select', $search->defaults['slmaster_id'], 'basic'); $search->setOptions('slmaster_id', $options); // Search by Product Group $prod_group = DataObjectFactory::Factory('STProductgroup'); $prod_group_list = $prod_group->getAll(); $search->addSearchField('prod_group_id', 'Product Group', 'select', '', 'basic'); $options = array('' => 'None'); $options += $prod_group_list; $search->setOptions('prod_group_id', $options); // Search by Description $search->addSearchField('description', 'description contains', 'contains', '', 'basic'); // Search by Product $config = SelectorCollection::getTypeDetails('sales_order'); $search->addSearchField('parent_id', implode('/', $config['itemFields']), 'treesearch', -1, 'basic'); if (empty($search_data)) { $search_data = null; } $search->setSearchData($search_data, $errors, 'selectProduct'); // Populate the parent_id field using the last selected value // it will be -1 if no previous selected value $parent_id = $search->getValue('parent_id'); $cc = new ConstraintChain(); if ($parent_id != '-1') { $cc->add(new Constraint('parent_id', '=', $parent_id)); } else { $cc->add(new Constraint('parent_id', 'IS', 'NULL')); } $model = new DataObject('so_product_selector'); $options = array($parent_id => 'Select an option'); $options += $model->getAll($cc); $search->setOptions('parent_id', $options); if ($parent_id != '-1') { $data = array('slmaster_id' => $search->getValue('slmaster_id')); $search->setBreadcrumbs('parent_id', $model, 'parent_id', $parent_id, 'name', 'description', $data); } return $search; }
static function getTargets($type, $item_ids = '') { // Get the type descriptor details $typedetails = SelectorCollection::getTypeDetails($type); $selecteditems = new SelectorCollection(new SelectorObject($typedetails['linkTableName'])); $sh = new SearchHandler($selecteditems, false); if (!empty($item_ids)) { if (!is_array($item_ids)) { $item_ids = array($item_ids); } $sh->addConstraint(new Constraint('item_id', 'in', '(' . implode(',', $item_ids) . ')')); } $sh->setFields(array('target_id', 'item_id')); $sh->setOrderby(array('target_id', 'item_id')); $selecteditems->load($sh); return $selecteditems->getAssoc(); }