Доп. действия

Разработчику

Общая информация

В CRM программе "Клиентская база" имеется функция "Доп. действия". Она позволяет производить любые операции с одной, несколькими выбранными или всеми строками по нажатию на кнопку. Код этой кнопки пишет администратор системы, по аналогии с вычислениями.

Все это должно делаться по одному щелчку и тем самым экономить время. Логика любой кнопки не ограничена туда можно также вставлять любые условия и функции имеющиеся в коде PHP. 

Чтобы добавить "Доп.действие" в нужную нам таблицу, необходимо

1. Зайти в "Настройки" — "Конфигурация"

photo photo

2. Открыть категорию, в которой содержиться нужная таблица, и затем перейти в настройки этой таблицы

photo photo

 

3. Далее переходим в меню доп. действий и нажимаем кнопку "Добавить доп. действие"

photo photo

Заполняем все поля "Доп. действия"

photo

Перечень настроек доп. действий

Название доп. действия – Название, которое будет отображаться на кнопке доп. действия. По нему можно будет легко определить его функционал.
Режим цвета – вариант выбора цвета для кнопки доп.действия. Здесь есть два варианта: выбор из перечня (вариант «Стандартный») или ручной выбор цвета для текста и фона (вариант «Палитра»).
Режим – в данном поле выбирается, как мы будет создавать код вычисления – с помощью конструктора (вариант «Режим конструктора») или задав код вручную (вариант «Режим эксперта» рекомендуется только при наличии навыков программирования на PHP и отсутствии подходящих шаблонов).
Ввод параметров – выбор значения в этой опции определяет, будут ли вводится данные во всплывающем окне, появляющемся при нажатии кнопки доп. действия. При выбранном варианте «Да» появится дополнительная настройка «Параметры», где можно будет указать перечень полей, доступных для редактирования во всплывающем окне.
Условия – условия, при которых происходит выполнение доп. действия.
Кроме этого, у доп. действия есть дополнительные настройки:
Выполнено – сюда записывается текст, который будет выводиться при успешном выполнении доп. действия.
Провалено – сюда записывается текст, который будет выводиться, если вычисление в доп. действии выполнить не удалось.

 

Перечень вычислений

Работа с подтаблицами
    Из основной таблицы подтянуть данные в подтаблицу. Данный шаблон заполняет поле, указанное в пункте «Выберите поле, в которое тянуть значение» в подтаблице, указанной в поле «Выберите подтаблицу», данными из поля, указанного в пункте «Выберите поле, из которого тянуть данные». Доп. действие может быть полезно, когда необходимо заполнить определенным значением все записи в подтаблице. Например, проставить статус выполнения у всех задач по одному проекту.
    Данные из поля подтаблицы в основную запись. Данный шаблон заполняет поле основной записи значением выбранного поля подтаблицы. При этом можно указать, из какой записи подтаблицы будет подтягиваться значение – из первой или последней. Доп. действие может быть полезно, когда необходимо подтянуть дату первого или последнего контакта с клиентом на основании записей, внесенных в историю работы с ним.

Работа с датами
    Подстановка текущей даты. Заполняет выбранное поле текущей датой. Шаблон может быть полезен, когда нужно одним кликом указать дату подписания договора.
    Изменение поля типа дата на количество дней. Данный шаблон прибавляет или убавляет выбранное количество дней от даты, указанной в одном из полей программы, и заносит итоговое значение в другое поле. Доп. действие может быть полезно, например, когда необходимо подсчитать расчетную дату окончания времени работы по договору.

Работа с другими таблицами
    Заполнение поля из поля связи. Заполняет поле текущей таблицы значением из поля в связанной записи, указанной в выбранном поле «Связь». Доп. действие может быть полезно, когда необходимо подтянуть статус из карточки клиента в заявку.
    Изменение данных в связанной таблице. Заполняет поле в связанной записи, указанной в выбранном поле «Связь», значением из поля текущей таблицы. Доп. действие может быть полезно, когда в карточку клиента необходимо подтянуть статус из заявки.

Работа с текстом
    Поиск и замена значений поля. Заменяет в таблице одно указанное значение на другое. Доп. действие может быть полезно, когда необходимо массово сменить статусы у группы приходов.

Другое
    Заполнение поля значением другого. Доп. действие может быть полезно, когда при выполнении внутренней работы по заказу по нему нужно отчитаться перед клиентом. Также можно отрегулировать, нужно ли заполнять поле-получатель, если в нем уже есть значение.
    Смена значения поля типа «Список» при изменении поля. Данный шаблон позволяет заполнить списковое поле значением, которое в нем отсутствует. Доп. действие может быть полезно, когда необходимо отметить заявку особым статусом, который обычно не используется в работе.
    Очистка поля. Доп. действие может быть полезно, когда необходимо удалить информацию о долге по счету либо внесенное ранее примечание.
    Отправка шаблона рассылки. Доп. действие может быть полезно, когда необходимо отправить определенный шаблон одним кликом мыши.
    Удаление записи. Доп. действие может быть полезно, когда необходимо удалить запись при отсутствии прав на просмотр удаленных записей в таблице.
    Архивация записи. Доп. действие может быть полезно, когда необходимо архивировать запись при отсутствии прав на просмотр архивированных записей в таблице.
    Восстановление записи. Доп. действие может быть полезно, когда необходимо восстановить запись при отсутствии прав на просмотр архивированных и удаленных записей в таблице.
    Сохранение шаблона печати в поле типа файл. Доп. действие аналогично функции печати в файл в браузере, при этом файл сразу закрепляется в нужной записи.
    Печать шаблона. Доп. действие может быть полезно, когда необходимо распечатать определенный шаблон одним кликом мыши.
    Копировать запись.  Доп. действие может быть полезно, когда необходимо скопировать запись при отсутствии прав на добавление новых записей в таблице.
    Копировать запись в подтаблицу.  Доп. действие может быть полезно, когда необходимо создать подзадачу на основе имеющейся задачи.

Группировка доп. действий

Если в таблице находится очень большое количество доп. действий, то они могут занимать место на экране, затрудняя доступ к подтаблицам. Чтобы облегчить работу с записью, и был создан этот функционал.
Для создания группы перейдите в настройки доп. действий таблицы и нажмите кнопку «Добавить группу».

photo

В новом окне введите название группы и укажите цвет кнопки группировки.

photo

После создания группы переместите ее выше тех доп. действий, которые должны входить в нее. При этом стоит учесть, что нижние границы группы указать невозможно, поэтому в нее войдут все доп. действия, находящиеся ниже вплоть до конца списка доп. действий или до следующей группы доп. действий.

После этого все доп. Действия, входящие в группу, не будут отображаться – вместо них в записи будет отображаться кнопка группировки, при нажатии на которую будет появляться перечень входящих в нее доп. действий. При этом в таблице доп. действия будут выводиться все так же без группировки.

 

Перечень примеров в режиме эксперта

Пример 1. Есть таблица "Задания" и нам необходимо чтобы по нажатию кнопки "Принять" (код которой мы опишем ниже) во всех строках выделенные галочками поле "Принято" менялось свое значение на "Да", а в поле "Дата выполнения" проставлялись текущие дата и время.

Для описанного выше примера нам потребуется вставить следующий код:

$line['Принято'] = 'Да';
$line['Дата выполнения'] = date("Y-m-d H:i:s"); 

Сохраняем данное доп. действие и (ВАЖНО) разрешаем доступ для тех групп которым разрешено пользоваться данной функцией.

После этого у всех пользователей, у которых разрешен доступ появятся следующие кнопки:

 

Выпадающий список "Дополнительно" (со списком всех доп. действий) в таблице "Задания"

и кнопка "Принять " внутри каждой записи, под кнопками "Редактировать" и "Вернуться в таблицу"

Теперь принять задание (или сразу несколько заданий) можно будет из общей таблицы, выделив галочками нужные задания и нажав кнопку - "Дополнительно" — "Принять". Либо внутри каждой записи, нажав на аналогичную кнопку.

Усложним пример 1 и кроме всех описанных в нем действий, по нажатию кнопки "Принять с оценкой" должна еще проставляться оценка в поле "Оценка", которую пользователь должен вводить во всплывающем окне.

Пример 2. Есть таблица "Задания" и нам необходимо чтобы по нажатию кнопки "Принять" (код которой мы опишем ниже) во всех строках выделенные галочками поле "Принято" менялось свое значение на "Да", а в поле "Дата выполнения" проставлялись текущие дата и время. Также в поле "Оценка" должно подставляться значение из всплывающего окна.

В этом случае "Тип доп. действия" ставим "Во всплывающем окне" и пишем следующий код:

if (isset($_REQUEST["rating"]))
   {
     $line['Оценка']=$_REQUEST["rating"];
     // производим нужные нам действия с необходимыми полями
     $line['Принято']='Да'; 
     $line['Дата выполнения']= date("Y-m-d H:i:s");
     echo "";
   }
echo "
"; echo "Введите оценку :"; echo "$button_id" />"; // Передаем значение кнопки echo ""; // Значение строки echo ""; // Передаем оценку echo ""; echo ""
;

Дополнительные примеры доп.действий

Пример 3. В таблице "Счета" есть поля "Сумма", "Оплачено", "Остаток", "Дата платежа". Необходимо чтобы по доп. действию "Оплачено" поле "Остаток" переносилось бы в поле "Оплачено", а само обнулялось бы. Кроме этого чтобы в поле "Дата платежа" проставлялось сегодняшнее число.

$line['Оплачено']=$line['Остаток'];
$line['Остаток']="";
$line['Дата платежа']=date("Y-m-d H:i:s");

ПРИМЕЧАНИЕ К ПРИМЕРУ.

Вместо строки

$line['Оплачено']=$line['Остаток'];

можно написать

$line['Оплачено']=$line['Оплачено']+$line['Остаток'];

в этом случае если вы случайно нажмете кнопку "Принять" еще раз, поле "Оплачено" не обнулиться.

Пример 4. Необходимо перенести данные записи из таблицы "Неподписанные договора" в таблицу "Текущие договора". После этого, запись в таблице "Неподписанные договора" нужно удалить.

$arr['Номер'] = $line['Номер'];
$arr['Название'] = $line['Объект'];
$arr['Контакт'] = $line['Контакт'];
$arr['Телефон'] = $line['Телефон'];
$arr['Сумма'] = $line['Цена объекта'];
$arr['e-mail'] = $line['e-mail'];
$arr['Тип договора'] = $line['Тип договора']; //заносим значения из полей таблицы "Неподписанные договора"в массивдругую
$newid = insert_query($arr, "Текущие договора"); //создаем новую запись в таблице "Текущие договора", куда, собственно, и вносим информацию из полей
$fls=explode("rn",$line['КП']); // разделяем все файлы из поля "КП" таблицы "Неподписанные договора"(если в одно поле может быть закачано несколько файлов)
foreach ($fls as $f_name) {  create_data_file_dirs(1215,$newid, $f_name); // создаем директорию, куда переносим физически файл  
copy(get_file_path(1181,$ID, $f_name), get_file_path(1215,$newid, $f_name)); // копируем название файла, а также физически копируем сам файл }
$sqlQuery = "UPDATE `".DATA_TABLE."92` SET `status`='1' WHERE `id`='$ID'"; // удаляем строку из таблицы "Неподписанные договора" (id этой таблицы - 92), откуда перенесли информацию
sql_query($sqlQuery); 

Пример 5. Необходимо выделить несколько строк в таблице , и выполнить по ним доп. действие, которое вызывает окно для ввода дополнительных парамтеров.

 
// Название
$smarty->assign("cur_title", "Рассылка от менеджер");
// Подключаем шапку
smarty_display("index_top");
// Список записей
$ids = array();
// Выбранно несколько или выбранна одна
if (is_array($_REQUEST['sel']))
{
 if (count($_REQUEST['sel'])) 
 {
 foreach ($_REQUEST['sel'] as $id) { $ids[] = (int)$id; }
 }
 }
// Запустили из записи
else {
 $ids[] = $ID;
}
// Подключаем подвал
include "index_bottom.php";
exit;


+ сегодня

компаний уже выбрали Клиентскую базу!
Узнайте, почему.

  • компания
  • компании
  • компаний
  • выбрала
  • выбрали
  • выбрали

Создайте собственный аккаунт прямо сейчас! Бесплатно! Создать аккаунт