/**
	 * @return array<Pap_Db_UserPayoutOption>
	 */
	public function getValues($formName, $userId) {
		$select = new Gpf_SqlBuilder_SelectBuilder();
		
		$select->select->add('ff.'.Gpf_Db_Table_FormFields::ID, Gpf_Db_Table_FormFields::ID);
		$select->select->add('ff.'.Gpf_Db_Table_FormFields::CODE, Gpf_Db_Table_FormFields::CODE);
		$select->select->add('upo.'.self::VALUE, self::VALUE);
		$select->select->add('upo.'.self::USERID, self::USERID);
		
		$select->from->add(Gpf_Db_Table_FormFields::getName(), 'ff');
		$select->from->addInnerJoin(self::getName(), 'upo', 'upo.formfieldid=ff.formfieldid');
		
		$select->where->add('upo.'.self::USERID, '=', $userId);
		$select->where->add('ff.'.Gpf_Db_Table_FormFields::FORMID, '=', $formName);
		
		$values = array();
		foreach ($select->getAllRowsIterator() as $row) {
		    $payoutOption = new Pap_Db_UserPayoutOption();
		    $payoutOption->fillFromRecord($row);
		    $values[$row->get('code')] = $payoutOption;
		}
		return $values;
	}
	/**
	 * @param Gpf_Data_Row $row
	 */
	private function addPayoutData(Gpf_Data_Row $row) {
		$payoutData = '';
		foreach ($this->buildUserPayoutOptions($row)->getAllRows() as $payoutOptionRow) {
			if ($payoutData !== '') {
				$payoutData .= ', ';
			}
			$userPayoutOption = new Pap_Db_UserPayoutOption();
			$userPayoutOption->fillFromRecord($payoutOptionRow);
			$payoutData .= $this->_localize($payoutOptionRow->get("payoutFieldName")).": ".$userPayoutOption->getValue();
		}

		$row->add("payoutData", $payoutData);
	}