SugaCRM - как обнулить счетчик в каком-то поле? (цитировать номер)

У меня есть поле номера котировки, поэтому при печати номер PDF имеет формат 55-JD-2012, 56-JD-2012,57-JD-2012 и т. д. Таким образом, 55, 56,57 - это числа котировок, которые генерируются автоматически. Я заинтересован в сбросе этого первого значения, которое является значением номера цитаты, и это поле, конечно из модуля «Цитата». Я хотел бы сбросить его на этот год, поэтому при печати PDF я смогу получить это как вывод: 55- JD -2013, 56 -JD -2013 и т. д. В настоящее время я получаю в качестве выходного числа на 1 больше, чем мой последний номер Quote в настоящее время более 500.

Как сбросить этот счетчик в каком файле или где?


person Stefke    schedule 31.01.2013    source источник


Ответы (1)


Поле Quote Number в SugarCRM является автоинкрементным полем (инкрементирование происходит не в самой SugarCRM, а в базе данных). Он также имеет индекс поля с ограничением unique.

Из-за этого поле не может быть просто сброшено. Номер котировки должен быть уникальным и автоматически увеличиваться.

Чтобы иметь сбрасываемое поле «Номер заявки» в SugarCRM, вам потребуется создать новое поле с некоторой специальной логикой и/или создать пакет SugarCRM, который настраивает поведение поля «Номер заявки» по умолчанию или нового, но эквивалентного поля. и обновляет все остальное, используя поле Quote Number в функции конкатенации, чтобы использовать новое поле.

Это был бы лучший способ, хотя и потребовал бы наибольшей работы. Это также лучший способ выполнить то, что вам нужно, если вы используете SugarCRM On Demand, а не размещаете его на своем собственном сервере. И это единственный безопасный способ сделать это. Возможно, уже существует пакет, позволяющий это сделать, поэтому вам, вероятно, следует проверить SugarExchange.

В качестве альтернативы вам нужно будет изменить vardefs таблицы базы данных Quotes, удалить ограничение unique для индекса quote_num, а затем сбросить значение автоматического приращения таблицы базы данных, чтобы она начала подсчет с любого числа, которое вы хотите.

Чтобы сделать это, хотя и нерекомендуемое (поскольку это нарушает совместимость с будущими обновлениями SugarCRM и может иметь непреднамеренные побочные эффекты для всего, что зависит от этого конкретного поведения поля Quote Number), выполните следующие шаги.

Это предполагает, что вы размещаете свой экземпляр SugarCRM на собственном сервере, а не на SugarCRM On Demand, и что вы используете MySQL. Существует также несколько различных способов сделать номер котировки сбрасываемым; это всего лишь один из них - он может быть не самым лучшим.

  1. Сделайте резервную копию вашей базы данных и экземпляра SugarCRM. Вы должны делать эти резервные копии регулярно, несмотря ни на что, конечно.

  2. Отредактируйте {SugarCRM root}/modules/Quotes/vardefs.php, чтобы удалить ограничение unique для индекса quote_num. Вы можете найти это в элементе indices массива $dictionary['Quote'] в нижней части файла.

    До:

    array('name' =>'quote_num', 'type'=>'unique', 'fields'=>array('quote_num', 'system_id'))

    После:

    array('name' =>'quote_num', 'type'=>'index', 'fields'=>array('quote_num', 'system_id'))

  3. Выполните быстрый ремонт и восстановление. Вы делаете это, перейдя на страницу администратора SugarCRM, нажав «Восстановить», затем «Быстрое восстановление и перестроение». После завершения первого прохода внизу страницы вы увидите текстовое поле с одним или двумя операторами SQL. Нажатие на кнопку «Выполнить» применит сделанные вами обновления к записи индекса Quotes vardefs.

  4. Сбросить значение автоматического приращения таблицы quotes. Если вашей базой данных является MySQL, вы можете сделать это, выполнив: ALTER TABLE quotes AUTO_INCREMENT=1 (если вы хотите начать считать с 1 в дальнейшем).

Как только эти шаги будут выполнены, ваши номера котировок снова начнутся с 1 (или любого другого числа, указанного вами в вашем операторе ALTER TABLE), и вы сможете снова сбросить номер в будущем, повторно выполнив оператор ALTER TABLE.

person Kyle Lowry    schedule 06.03.2013
comment
не могли бы вы, если у вас есть время, чтобы проверить и это? stackoverflow.com/questions/15254673/ Я хочу, чтобы при нажатии кнопки «Сохранить» появилось всплывающее окно (сначала с некоторым сообщением, а затем я хотел бы добавить параметры «ОК» и «Отмена»). заранее спасибо - person Stefke; 06.03.2013