SugarTalk - ресурс для администраторов и разработчиков системы SugarCRM.

  1. Nickel
  2. Общий форум
  3. Воскресенье, 30 июля 2017
  4.  Подписаться через email
Добрый день!
Нужно по порядку нумеровать контакты. Как это реализовать? Какой тип поля использовать, можно ли создать шаблон нумерации? Например 00005/12?
Комментарий
Никаких комментариев пока не создано.
ZIGELBAM Ответ принят Pending Moderation
0
Голосов
Undo
Можете создать авто инкремент поле. Делается оно следующим образом:
в файл vardefs.php вашего модуля в секцию fields добавляем описание поля:

'timeno' =>
array (
'required' => '1',
'name' => 'timeno',
'vname' => 'LBL_TIMENO',
'type' => 'int',
'massupdate' => 0,
'comments' => '',
'help' => '',
'duplicate_merge' => 'disabled',
'duplicate_merge_dom_value' => 0,
'audited' => 0,
'reportable' => 0,
'len' => '11',
'auto_increment'=>true,
),

В этом же файле в секцию indices добавляем:

'indices' => array (

array('name' =>'timeno' , 'type'=>'unique' , 'fields'=>array('timeno')),

),

Вместо timeno можете использовать любое свое название.

Если надо шаблон, то просто создаете поле varchar, при сохранении записи генерируете порядковый номер по своему алгоритму самостоятельно, для этого можно использовать хук before_save. На блоге есть подробная статья про использование хуков.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 1
Nickel Ответ принят Pending Moderation
0
Голосов
Undo
Не получилось:
Query Failed: ALTER TABLE contacts add column timeno int(24) NOT NULL auto_increment, ADD : Ошибка базы данных. Более подробная информация находится в файле sugarcrm.log.

Wed Feb 15 14:40:25 2012 [9597][1][FATAL] Query Failed: ALTER TABLE contacts add column timeno int(11) NOT NULL auto_increment, ADD : MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

UPD: Вроде немного подкрутил, ругаться перестало, но в качестве поля выдает текстовое пустое поле.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 2
ZIGELBAM Ответ принят Pending Moderation
0
Голосов
Undo
Ошибка была скорее всего потому что не добавили секцию indices или добавили не корректно, видно что запрос не завершен.
Это авто нумерация. Поле в редактировании не выносите. При сохранении значение автоматически будет увеличиваться на единицу.
Выносите данное поле в список и форму просмотра(не редактирования)
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 3
Nickel Ответ принят Pending Moderation
0
Голосов
Undo
Здравствуйте! Пытался создать поле автоинкреймента. Опыта у меня очень мало, поэтому если не сложно, объясните что куда вставлять. В студии создал свой модуль, вставляю блок в файл vardefs.php в секцию fields, но там нет секции indices. Версия Sugar 6.5.9.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 4
Irina Ответ принят Pending Moderation
0
Голосов
Undo
Здравствуйте!
Если нету то нужно добавить

'fields' => array (
...,
...,
...,
),
'indices' => array (

array('name' =>'timeno' , 'type'=>'unique' , 'fields'=>array('timeno')),

),
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 5
Nickel Ответ принят Pending Moderation
0
Голосов
Undo
Редактирую во внешнем модуле, созданном в студии, однако он отказывается устанавливаться загрузчиком
В процессе установки произошла ошибка,корректная установка пакета не возможна
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 6
Irina Ответ принят Pending Moderation
0
Голосов
Undo
а какие нибудь ошибки выдает?
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 7
Nickel Ответ принят Pending Moderation
0
Голосов
Undo
Нет. Только надпись во всплывающем окне "В процессе установки произошла ошибка,корректная установка пакета не возможна"
После этого установленные модули становятся не активными, хотя их можно снова засунуть в меню и какбы все ок, но при создании записи ошибка базы.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 8
Irina Ответ принят Pending Moderation
0
Голосов
Undo
а попробуйте из пакета удалить это поле, установить модули, а потом в уже установленный модуль добавить поле
а в sugarcrm логах нету ошибок? или в логах сервера
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 9
Wonderw Ответ принят Pending Moderation
0
Голосов
Undo
Можно ли создать шаблон нумерации? Например 00005/12

Да можно, я пользуюсь таким вот хуком (был выложен на фордже):
logic_hooks.php

<?php $hook_array['after_save'] = Array();
$hook_array['after_save'][] = Array(1, 'add_code', 'custom/modules/<module>/add_code_hook.php','add_code', 'add_code'); ?>

add_code_hook.php

$GLOBALS['log']->debug("New Code: " . $last_code);

//write to database
$query = "INSERT INTO " . self::CUSTOM_TABLE . " (id_c, " . self::CODE_FIELD . ") VALUES ('$bean->id', '$new_code') ON DUPLICATE KEY UPDATE " . self::CODE_FIELD . "='$new_code'";
$result = $db->query($query, true, 'Error adding ' . self::CODE_PREFIX . ' code');
} else {
$GLOBALS['log']->debug("Code Exists...Exiting " . $bean->fetched_row[" . self::CODE_FIELD . "]);
}
}
}

?>

P. S. Если хук будете применять для кастомного поля измените имя таблицы и поля если для стандартного то тогда еще нужно изменить id_c на id
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Общий форум
  3. # 10
  • Страница :
  • 1


На это сообщение еще не было создано никаких ответов.
Будьте первым, кто ответит на него.
Гость
Ваш ответ
Загрузите файлы или изображения для данного обсуждения, нажав на кнопку Загрузить. Поддерживает до gif,jpg,png,jpeg,zip,rar,pdf
• Insert • Удалить Загрузка файлов (Максимальный размер файла: 2 MB)
Вы можете вставить опрос в свое обсуждение. Опрос будет добавлен в обсуждение.
Варианты голосования
Местонахождение

Указывая свое текущее местоположение при размещении нового вопроса, позволяет читателям определить Ваше местонахождение.

Широта:
Долгота:

Последние новости

  • 1
  • 2
  • 3
  • 4

Популярные новости

  • 1
  • 2
  • 3
  • 4