CommonDBTM::getUnicityErrorMessage PHP Method

getUnicityErrorMessage() public method

Build an unicity error message
public getUnicityErrorMessage ( $msgs, $unicity, $doubles )
$msgs the string not transleted to be display on the screen, or to be sent in a notification
$unicity the unicity criterion that failed to match
$doubles the items that are already present in DB
    function getUnicityErrorMessage($msgs, $unicity, $doubles)
    {
        $message = array();
        foreach ($msgs as $field => $value) {
            $table = getTableNameForForeignKeyField($field);
            if ($table != '') {
                $searchOption = $this->getSearchOptionByField('field', 'name', $table);
            } else {
                $searchOption = $this->getSearchOptionByField('field', $field);
            }
            $message[] = sprintf(__('%1$s = %2$s'), $searchOption['name'], $value);
        }
        if ($unicity['action_refuse']) {
            $message_text = sprintf(__('Impossible record for %s'), implode(' & ', $message));
        } else {
            $message_text = sprintf(__('Item successfully added but duplicate record on %s'), implode(' & ', $message));
        }
        $message_text .= '<br>' . __('Other item exist');
        foreach ($doubles as $double) {
            $doubles_text = array();
            if (in_array('CommonDBChild', class_parents($this))) {
                if ($this->getField($this->itemtype)) {
                    $item = new $double['itemtype']();
                } else {
                    $item = new $this->itemtype();
                }
                $item->getFromDB($double['items_id']);
            } else {
                $item = clone $this;
                $item->getFromDB($double['id']);
            }
            $double_text = '';
            if ($item->canView() && $item->canViewItem()) {
                $double_text = $item->getLink(array('linkoption' => "target='_blank'"));
            }
            foreach ($this->getUnicityFieldsToDisplayInErrorMessage() as $key => $value) {
                $field_value = $item->getField($key);
                if ($field_value != NOT_AVAILABLE) {
                    if (getTableNameForForeignKeyField($key) != '') {
                        $field_value = Dropdown::getDropdownName(getTableNameForForeignKeyField($key), $field_value);
                    }
                    $new_text = sprintf(__('%1$s: %2$s'), $value, $field_value);
                    if (empty($double_text)) {
                        $double_text = $new_text;
                    } else {
                        $double_text = sprintf(__('%1$s - %2$s'), $double_text, $new_text);
                    }
                }
            }
            // Add information on item in dustbin
            if ($item->isField('is_deleted') && $item->getField('is_deleted')) {
                $double_text = sprintf(__('%1$s - %2$s'), $double_text, __('Item in the dustbin'));
            }
            $message_text .= "<br>[{$double_text}]";
        }
        return $message_text;
    }
CommonDBTM