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

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

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

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

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

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

photo photo

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

photo photo

 

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

photo photo

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

photo

  

Краткая инструкция по заполнению полей:

Название доп. действия — название которое потом будет отображаться на кнопке и в выпадающем списке. Должно быть не более 20 символов

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

     в текущем окне — ставим в случае если нам не требуется ввод дополнительных данных

     в всплывающем окне  — ставим в случае если нам требуется ввод дополнительных данных, например, какое то число или строка

Цвет кнопки — можно задать цвет кнопки доп.действия в режиме просмотра записи (по умолчанию - светло-серый)

Вычисления — в данном поле вставляем сам код вычисления. Код пишется по аналогии с вычислениями в таблицах.

photo

  

Внимание! Все нижеприведенные примеры относятся к версии 1.9.5.

 

Пример 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 "<script>";
     echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
     echo "window.close()"; // Закрываем текущее
     echo "</script>";
   }
echo "<form method='get'>";
echo "Введите оценку :";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='{ID}'>";  // Значение строки
echo "<input type='text'   name='rating' value='5'>";  // Передаем оценку
echo "<input type='submit' value='Оценить'>";
echo "</form>";

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

Пример 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); 


comments powered by HyperComments

+ сегодня

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

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

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