/** * A ModelAbstract->setOnLoad() function that takes care of transforming a * dateformat read from the database to a \Zend_Date format * * If empty or \Zend_Db_Expression (after save) it will return just the value * currently there are no checks for a valid date format. * * @see \MUtil_Model_ModelAbstract * * @param mixed $value The value being saved * @param boolean $isNew True when a new item is being saved * @param string $name The name of the current field * @param array $context Optional, the other values being saved * @param boolean $isPost True when passing on post data * @return \MUtil_Date|\Zend_Db_Expr|string */ public function valueCount($value, $isNew = false, $name = null, array $context = array(), $isPost = false) { $model = $this->engine->getFieldsDataStorageModel(); if (!$model instanceof FieldDataModel) { return null; } $subName = $model->getModelNameForRow($context); $sql = sprintf("SELECT COUNT(DISTINCT %s)\n FROM %s INNER JOIN gems__respondent2track ON %s = gr2t_id_respondent_track\n INNER JOIN gems__reception_codes ON gr2t_reception_code = grc_id_reception_code\n WHERE %s = %s AND %s IS NOT NULL AND gr2t_id_track = %d AND grc_success = 1" . $this->orgWhere, $model->getFieldName('gr2t2f_value', $subName), $model->getTableName($subName), $model->getFieldName('gr2t2f_id_respondent_track', $subName), $model->getFieldName('gr2t2f_id_field', $subName), $context['gtf_id_field'], $model->getFieldName('gr2t2f_value', $subName), $this->trackId); // \MUtil_Echo::track($sql); $value = $this->db->fetchOne($sql); return sprintf($this->_('%d (uses per value: %01.2f)'), $value, $value ? $this->trackFilled / $value : 0); }