コード例 #1
0
 /**
  * Add the respondent name as a caclulated field to the model
  * @param \Gems_Model_JoinModel $model
  * @param string $label
  */
 public static function addNameToModel(\Gems_Model_JoinModel $model, $label)
 {
     $nameExpr[] = "COALESCE(grs_last_name, '-')";
     $fieldList[] = 'grs_last_name';
     if ($model->has('grs_partner_last_name')) {
         if ($model->has('grs_partner_surname_prefix')) {
             $nameExpr[] = "COALESCE(CONCAT(' ', grs_partner_surname_prefix), '')";
             $fieldList[] = 'grs_partner_surname_prefix';
         }
         $nameExpr[] = "COALESCE(CONCAT(' ', grs_partner_last_name), '')";
         $fieldList[] = 'grs_partner_last_name';
     }
     $nameExpr[] = "', '";
     if ($model->has('grs_first_name')) {
         if ($model->has('grs_initials_name')) {
             $nameExpr[] = "COALESCE(grs_first_name, grs_initials_name, '')";
             $fieldList[] = 'grs_first_name';
             $fieldList[] = 'grs_initials_name';
         } else {
             $nameExpr[] = "COALESCE(grs_first_name, '')";
             $fieldList[] = 'grs_first_name';
         }
     } elseif ($model->has('grs_initials_name')) {
         $nameExpr[] = "COALESCE(grs_initials_name, '')";
         $fieldList[] = 'grs_initials_name';
     }
     if ($model->has('grs_surname_prefix')) {
         $nameExpr[] = "COALESCE(CONCAT(' ', grs_surname_prefix), '')";
         $fieldList[] = 'grs_surname_prefix';
     }
     $model->set('name', 'label', $label, 'column_expression', new \Zend_Db_Expr("CONCAT(" . implode(', ', $nameExpr) . ")"), 'fieldlist', $fieldList);
 }