Формирование номера заявки/заказа в RSForm

  • 17 Ответов
  • 6763 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн css_ufa

Вопрос: Как реализовать в форме автоматическую вставку номера заявки?
То есть, я сделал форму заказа, клиенты заполняют заявку, после я получаю на почту готовый бланк заявки, а в шапке нужно указать номер, например, ИЗ-24/11-01, где ИЗ - обозначение, что заявка сделана через интернет, 24/11 - сегодняшняя дата 24 ноября, 01 - очередной номер заявки в этот день. Либо проще - ИЗ-0001 (Интернет Заявка №1)
Поле формы "Support Tickets" не подходит, так как он генерирует случайное число. А мне надо последовательное.
Всё что не делается, всё к лучшему (с). Так говорили великии люди.

*

Оффлайн DARGO

А здесь вообще кто-нибудь кому-нибудь отвечает?

*

Оффлайн css_ufa

А здесь вообще кто-нибудь кому-нибудь отвечает?
Бывают что не отвечают)

Видимо они так кого стимулируют не лениться, хотя я до сих пор не нашел ответ на свой вопрос)
Всё что не делается, всё к лучшему (с). Так говорили великии люди.

*

Оффлайн AL_ALEX

Вот Вам тема в которой есть похожая ситуация, которая может помочь в вашем решении

*

Оффлайн sky777

Вижу, что тема старая, но все же отвечу, т.к. сам долго ломал голову над формированием уникального номера заявки.

Сначала пытался получать значение поля Support Ticket как getElementsByName('form[Name]').value , но в ответ почему-то всегда возвращается undefined

Потом случайно наткнулся на  статейку на родном форуме http://www.rsjoomla.com/support/documentation/view-article/95-adding-a-counter-for-submissions.html, в которой собс-но и написано как получать порядковый номер заявки (количество отправленных форм +1).

Если по-русски, то вкратце так (для RSForm версии выше 30)
1. создаем невидимое поле, обзываем, например, counter
2. Значение по-умолчанию этого поля пишем

//<code>
$db=JFactory::getDBO();
$db->setQuery("SELECT COUNT(`SubmissionId`) cnt FROM #__rsform_submissions");
$db->query();
$result=$db->loadResult();
return intval($result)+1;
//</code>

и ВСЕ!

Номер заявки получаем например так: getElementByID('counter').value

Ну и конечно к номеру заявки можно лепить различные производные от времени/даты.

И не забудьте в настройках формы включить "сохранять данные  в БД"!


А подскажите пожалуйста как этот номер прикрепить к названию файла, который загружался вместе с этой  формой ?
________________________________________
Решилось добавлением в поле "File Prefix"

//<code>
return $_POST['form']['Counter'].'_';
//</code>

Может пригодится кому нибудь )
« Последнее редактирование: 03.03.2013, 02:06:22 от leo_leo_184 »


Если по-русски, то вкратце так (для RSForm версии выше 30)
1. создаем невидимое поле, обзываем, например, counter
2. Значение по-умолчанию этого поля пишем



Немного не понятно вы бы могли  поподробнее объяснить куда что  вставлять ..писать ..включить...

если есть возможность со скринами ...


Спасибо

Минимум с 44 версии номер заявки делается просто.
Используем глобальное значение "{global:submissionid}" (порядковый номер записи, под которым она легла в БД),
А дальше как угодно. Хотите припишите к нему нули для солидности:  ИЗ-00{global:submissionid}
Хотите - дату.
Дату можно тоже взять из глобальных параметров {global:date_added}
Или в свой формат настроить. Для этого в форме создаем скрытое поле, называем его как-нибудь по смыслу (data, chislo), затем в поле "Значение по умолчанию" пишем:
//<code>
return date('d-m-o');
//</code>
И получаем дату в формате 25-10-1917 (или как вам захочется: см. настройки даты в пхп); через value забираем и ставим куда нужно.
...
PROFIT! :)

*

Оффлайн Nats

Подскажите, пожалуйста.
Нужно  вывести значение {global:submissionid} в скрытое поле. Как?

*

Оффлайн BroodingAngel

Цитировать
//<code>
$db=JFactory::getDBO();
$db->setQuery("SELECT COUNT(`SubmissionId`) cnt FROM #__rsform_submissions");
$db->query();
$result=$db->loadResult();
return intval($result)+1;
//</code>
sky777, спасибо огромнейшее за код, работает!!
Цитировать
Номер заявки получаем например так: getElementByID('counter').value
Номер заявки у меня вывелся вот так: НОМЕР ЗАЯВКИ: {counter:value}
Вы можете заказать сайт в моей веб-студии недорого. Цены - от $150.

sky777, спасибо огромнейшее за код, работает!! Номер заявки у меня вывелся вот так: НОМЕР ЗАЯВКИ: {counter:value}
скажите а куда разместить код "getElementByID('counter').value" если можно по подробнее. Буду вам очень признательна!

*

Оффлайн BroodingAngel

RSForm! Pro - Manage Forms - Ваша форма - Properties - Admin Emails - Edit the Email Text

Вот вам как образец Email, которое приходит на почту с моего сайта:

Новая заявка с сайта на проведение ремонтно-технического обслуживания.

НОМЕР ЗАЯВКИ: {counter:value}

ИНФОРМАЦИЯ О ЗАКАЗЧИКЕ:

{date1:caption}:  {date1:value}

{name1:caption}:  {name1:value}

{person1:caption}:  {person1:value}

{phone:caption}:  {phone:value}

{mail:caption}:  {mail:value}

{adress1:caption}:  {adress1:value}

ИНФОРМАЦИЯ ОБ ОБОРУДОВАНИИ:

{dogovor:caption}:  {dogovor:value}

{product:caption}:  {product:value}

{model:caption}:  {model:value}

{number:caption}:  {number:value}

{version:caption}:  {version:value}

{color:caption}:  {color:value}

{guarantee:caption}:  {guarantee:value}

{problems:caption}:  {problems:value}

{recommendation:caption}:  {recommendation:value}

Повторю, что код "getElementByID('counter').value" у меня не заработал, т.е делаете скрытое поле все как написал sky777, а в настройках письма администратору указываете :НОМЕР ЗАЯВКИ: {counter:value}. Этого достаточно, код работает.
Вы можете заказать сайт в моей веб-студии недорого. Цены - от $150.



Спасибо. Все сделала, но у меня счетчик заказов не заработал. Может дело в версии, у меня RSForm pro 1.2.22

*

Оффлайн BroodingAngel

Скорее всего да, дело в версии, sky777 написал что код для RSForm версии выше 30. У меня версия RSForm! Pro 1.4.0 Rev 45. Попробуйте установить новую версию.
Вы можете заказать сайт в моей веб-студии недорого. Цены - от $150.

Скорее всего да, дело в версии, sky777 написал что код для RSForm версии выше 30. У меня версия RSForm! Pro 1.4.0 Rev 45. Попробуйте установить новую версию.
По-хорошему конечно нужно обновить, но для этого сначала нужно Joomla обновлять тк RSForm перестали выпускать продукт для версии 1,5. А обновление Joomla - это уже серьезно и долго )))

*

Оффлайн 68pin

Вижу, что тема старая, но все же отвечу, т.к. сам долго ломал голову над формированием уникального номера заявки.

Сначала пытался получать значение поля Support Ticket как getElementsByName('form[Name]').value , но в ответ почему-то всегда возвращается undefined

Потом случайно наткнулся на  статейку на родном форуме http://www.rsjoomla.com/support/documentation/view-article/95-adding-a-counter-for-submissions.html, в которой собс-но и написано как получать порядковый номер заявки (количество отправленных форм +1).

Если по-русски, то вкратце так (для RSForm версии выше 30)
1. создаем невидимое поле, обзываем, например, counter
2. Значение по-умолчанию этого поля пишем

//<code>
$db=JFactory::getDBO();
$db->setQuery("SELECT COUNT(`SubmissionId`) cnt FROM #__rsform_submissions");
$db->query();
$result=$db->loadResult();
return intval($result)+1;
//</code>

и ВСЕ!

Номер заявки получаем например так: getElementByID('counter').value

Ну и конечно к номеру заявки можно лепить различные производные от времени/даты.

И не забудьте в настройках формы включить "сохранять данные  в БД"!


Данный способ не совсем корректный
Если два человека откроют форму то у обоих будет одинаковый номер заявки
есть решение чуть получше
//<code>
$num=date('zis');
return $num;
//</code>
пишешь в значения по умолчанию в скрытом поле
$num- это номер заявки сформированный из данных времени (z- день в году i-минуты s- секунды) будет типа 2741248
будут  некорректно если два пользователя откроют форму одновременно с точностью до секунды . Но это мало вероятно

*

Оффлайн Agard

есть решение чуть получше
//<code>
$num=date('zis');
return $num;
//</code>
пишешь в значения по умолчанию в скрытом поле
$num- это номер заявки сформированный из данных времени (z- день в году i-минуты s- секунды) будет типа 2741248
будут  некорректно если два пользователя откроют форму одновременно с точностью до секунды . Но это мало вероятно

Всё хорошо! Работает. Только почему-то у кода разница в три минуты (меньше) с "Дата представления": ДП    2015-12-28 22:59:33, код 3615653.
Мне это не фатально, устраивает и так, косяком не считаю. Спасибо за код!
(Время в общих настройках - Калининград, которое реально - Москва)

*

Оффлайн Agard

Чёт я совсем...  crazy! код формирует число при открытии формы, а дата п... по сохранению