/** * Add organization id and gul_user_class when needed * * @param mixed $row array or \Traversable row * @param scalar $key * @return mixed Row array or false when errors occurred */ public function translateRowValues($row, $key) { $row = parent::translateRowValues($row, $key); if (!$row) { return false; } if (!isset($row['gsf_id_organization'])) { $row['gsf_id_organization'] = $this->_organization->getId(); if (!isset($row['gul_user_class'])) { $row['gul_user_class'] = $this->_organization->get('gor_user_class'); } } elseif (!isset($row['gul_user_class'])) { $row['gul_user_class'] = $this->loader->getUserLoader()->getOrganization($row['gsf_id_organization'])->get('gor_user_class'); } return $row; }
/** * Perform any translations necessary for the code to work * * @param mixed $row array or \Traversable row * @param scalar $key * @return mixed Row array or false when errors occurred */ public function translateRowValues($row, $key) { $row = parent::translateRowValues($row, $key); if (!$row) { return false; } if (!isset($row['grs_id_user']) && isset($row['gr2o_patient_nr'], $row['gr2o_id_organization'])) { $sql = 'SELECT gr2o_id_user FROM gems__respondent2org WHERE gr2o_patient_nr = ? AND gr2o_id_organization = ?'; $id = $this->db->fetchOne($sql, array($row['gr2o_patient_nr'], $row['gr2o_id_organization'])); if ($id) { $row['grs_id_user'] = $id; $row['gr2o_id_user'] = $id; } } if (!isset($row['grs_email'])) { $row['calc_email'] = 1; } return $row; }
/** * Prepare for the import. * * @return \MUtil_Model_ModelTranslatorAbstract (continuation pattern) */ public function startImport() { if ($this->_targetModel instanceof \MUtil_Model_ModelAbstract) { // No multiOptions as a new items can be created during import $fields = array('gap_id_attended_by', 'gap_id_referred_by', 'gap_id_activity', 'gap_id_procedure', 'gap_id_location'); foreach ($fields as $name) { $this->_targetModel->del($name, 'multiOptions'); } } return parent::startImport(); }