public function _new() { parent::_new(); $datadefdetail = $this->_uses[$this->modeltype]; if ($datadefdetail->isLoaded()) { $cc = new ConstraintChain(); $cc->add(new Constraint('data_definition_id', '=', $datadefdetail->data_definition_id)); $this->view->set('parent', $datadefdetail->getAll($cc)); } elseif (isset($this->_data['data_definition_id'])) { $datadefdetail = new DataDefinitionDetail(); $cc = new ConstraintChain(); $cc->add(new Constraint('data_definition_id', '=', $this->_data['data_definition_id'])); $this->view->set('parent', $datadefdetail->getAll($cc)); } else { $this->view->set('parent', array()); } }
public function _new() { parent::_new(); }
public function _new() { $datamapdetail = $this->_uses[$this->modeltype]; if ($datamapdetail->isLoaded()) { $this->_data['data_mapping_rule_id'] = $datamapdetail->data_mapping_rule_id; $this->_data['parent_id'] = $datamapdetail->parent_id; $datamappingrule = $datamapdetail->data_map_rule; } elseif (isset($this->_data['data_mapping_rule_id'])) { $datamappingrule = new DataMappingRule(); $datamappingrule->load($this->_data['data_mapping_rule_id']); } if (!$this->CheckParams('data_mapping_rule_id')) { sendBack(); } parent::_new(); $cc = new ConstraintChain(); $datamap = $datamappingrule->data_map; $options = array(); if (!empty($this->_data['parent_id'])) { // get the parent mapping detail $parent_detail = new DataMappingDetail(); $parent_detail->load($this->_data['parent_id']); // get the parent mapping $parent_mapping = $parent_detail->data_map_rule->data_map; $parent_id = $parent_detail->internal_code; // Rules need simplifying and/or explaining // perhaps move these to the DataMapping model $x = $datamap->getModel(); $hasmany = $x->getHasMany(); if (isset($hasmany[$datamap->internal_attribute])) { $x->load($parent_detail->internal_code); foreach ($x->{$datamap->internal_attribute} as $detail) { $options[$detail->{$detail->idField}] = $detail->{$detail->getIdentifier()}; } } elseif ($parent_mapping->isHasOne()) { $hasone = $parent_mapping->getHasOne(); $x = new $hasone['model'](); $hasmany = $x->getHasMany(); if (isset($hasmany[$datamap->internal_attribute])) { $x->load($parent_detail->internal_code); foreach ($x->{$datamap->internal_attribute} as $detail) { $options[$detail->{$detail->idField}] = $detail->{$detail->getIdentifier()}; } } } else { $belongsto = $x->belongsTo; foreach ($belongsto as $parent) { if ($parent['model'] == $parent_mapping->internal_type) { $cc->add(new Constraint($parent['field'], '=', $parent_id)); break; } } } // If no constraints found from fk definitions and the parent class is the // same as the child class, then the parent is the child i.e. data specific // to the parent if (empty($cc->constraints) && $parent_mapping->internal_type == get_class($x)) { $cc->add(new Constraint($x->idField, '=', $parent_id)); } } // elseif (!is_null($datamappingrule->parent_id)) { // Get the list of parent options // from the parent mapping details via the parent mapping rule $parentmappingrule = new datamappingrule(); $parentmappingrule->load($datamappingrule->parent_id); $parent_options = array(); foreach ($parentmappingrule->data_translations as $parent_detail) { $parent_options[$parent_detail->id] = $parent_detail->displayValue(); } $this->view->set('parent_options', $parent_options); $this->view->set('parent_label', $datamappingrule->parent); // } if (is_null($datamap->internal_type)) { $errors[] = 'No Internal Type defined for Data Mapping ' . $datamappingrule->name; } else { if (empty($options)) { $options = $datamap->getDataOptions($datamap->getModel(), $cc); } $this->view->set('data_mapping_rule_id', $this->_data['data_mapping_rule_id']); if (!$datamap->isLoaded()) { $errors[] = 'Invalid Data Type'; } else { if (!is_null($datamap->internal_type)) { $model = $datamap->getModel(); if (!$model) { $errors[] = 'Data Mapping for Internal Data Type is invalid'; } else { $this->view->set('model', $model); $this->view->set('internal_codes', $options); $this->view->set('internal_name', $datamappingrule->name); } } } } $datatranslations = new DataMappingDetailCollection(new DataMappingDetail()); $sh = $this->setSearchHandler($datatranslations); $sh->addConstraint(new Constraint('data_mapping_rule_id', '=', $this->_data['data_mapping_rule_id'])); if (isset($this->_data['parent_id'])) { $sh->addConstraint(new Constraint('parent_id', '=', $this->_data['parent_id'])); } parent::index($datatranslations, $sh); $this->view->set('clickaction', 'view'); }