Beispiel #1
0
 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;
 }
Beispiel #2
0
 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'];
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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();
 }