Главная страница > Помощь > Документация для администратора > Примеры вычислений (до версии 1.9.5)

Примеры вычислений (до версии 1.9.5)

Заносим дату последнего сохранения записи в отдельное поле.

Например, у нас есть таблица ИТОГИ, и при каждом сохранении (то есть редактировании) какой-либо записи у нее должно меняться значение поле ОБНОВЛЕНО.

Реализуем через вычисления в таблице ИТОГИ.

$cur_rec = data_table("Итоги", "id={ID}");
$cur_rec['Обновлено'] = date("Y-m-d H:i:s");
update_query($cur_rec, "Итоги", "id={ID}");

 

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

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

$data = data_table("Ваша таблица","id={ID}");
$manager=$data['Менеджер'];
  
$sotr = data_table("Cотрудники","`Менеджер`='".$manager."'"); // значение поля Менеджер из таблицы сотрудники равно значению поля Менеджер из вашей таблицы
$boss = $sotr['Руководитель']; 
return $boss;

Далее настраиваем новые фильты для руководителей, и создаем новую группу доступа.

 

Нужно создать поле с использованием ID текущей записи + какой-то текст.

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

$data = data_table("Ваша таблица", "id={ID}");
$data['Ваше поле'] = "Ваш текст".{ID};
update_query($data, "Ваша таблица", "id={ID}");

Далее настраиваем новые фильты для руководителей, и создаем новую группу доступа.

 

Есть поле номер заказа. В него необходимо заносить текущую дату и ID текущей записи при срабатывании какого-то условия.

$data = data_table("Ваша таблица", "id={ID}");
$today = date("Y-m-d"); // Берем текущую дату и присваиваем переменной $today
if($data["Статус"] == "Продан") // Если поле значение поля Статус равно Продан, то выполняем следующий код.
{
$date["Номер заказа"] = $today.{ID}; // В поле Номер заказа заносим значения сегодняшнего дня и ID текущей записи.
return $date["Номер заказа"];
}

Есть две таблицы: «Жильцы квартир» и «Активности». Таблица «Активности» — подчиненная и имеет связь с таблицей «Жильцы квартир» по полю «Адрес».

Сначала заводится «Жилец квартиры» с квартирой и привязкой к Адресу, а затем, по «Квартире», добавляются «Активности». Необходимо отобразить в таблице «Активности» Адреса квартир

$act = data_table("Активности","id={ID}");
$git = data_table("Жители","id='".$act['Квартира']."'");
$adr = data_table("Таблица с адресами","id='".$git['Адрес']."'");
return $adr['Поле с адресом'];

Из таблицы "История работы" в таблицу "Контрагенты" заносим данные о последнем разговоре с клиентом.

В поле Последний разговор заносим следующий код.

  $sqlQuery = "SELECT * FROM ".DATA_TABLE."62 WHERE f724='{ID}' ORDER BY f724 desc LIMIT 0,1"; // Выбираем данные из таблицы 62 "История работы", при условии, что поле Компания из таблицы "История работы" равно ID текущей записи, а также сортируем данные по убыванию, и берем первую запись.
  $result = mysql_query($sqlQuery);
  $row = mysql_fetch_array($result);
  return $row['f725']; //Возвращаем данные из поля Описание

Необходимо поставить статус заявки "Да" до какой-то определенной даты, и по истечению этого срока вернуть статус в "Нет", а дату сбросить. Также если статус меняется на "Нет" до окончания срока, поле с датой тоже обнуляется.

   $data = data_table("Ваша таблица","id={ID}"); // Берем данные из текущей строки
   $dat = date("Y-m-d 00:00:00"); // Заносим в переменную $dat текущую дату
   if ($data['Статус'] == 'Нет' or $data['Дата брони'] == $dat or $data['Дата брони'] <= $bron) // Если статус равен "Нет", либо дата брони  меньше или равна текущей дате обнуляем поле "Дата брони"
   return '0000-00-00 00:00:00';
   elseif ($data['Дата брони']!= '0000-00-00 00:00:00') // Иначе если дата брони не пустая то выводим дату брони.
   return $data['Дата брони'];

 

В поле "Статус" вставляем следующий код:

$data = data_table("Номера","id={ID}");
$dat = date("Y-m-d 00:00:00");
if ($data['Дата брони'] <= $dat) //Если дата брони меньше или равна текущей дате возвращаем значение "Нет"
return 'Нет';
else //Иначе возвнащаем текущее значение
return $data['Бронирован'];

В таблицу Контрагенты необходимо в отдельное поле выводить сумму всех оплат клиента.

В поле Сумма оплат заносим следущий код:

$data = data_table("Реквизиты","`Организация`={ID}");// Из таблицы Реквизиты строку, поле организация в которой равно ID текущей записи (ID записи в таблице контрагенты)

$sqlQuery = "SELECT sum(f454) as summa FROM ".DATA_TABLE."43 WHERE status=0 AND f839='".$data['id']."'"; // Считаем сумму поля 454("Сумма") из таблицы счета, при условии, что запись активна, т.е. находится не в архиве и не в корзине(status=0), а также поле 839 (На кого) равно id записи из таблицы Реквизиты
$result3 = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery);
$row3 = mysql_fetch_array($result3);
return $row3['summa']; //Возвращаем сумму оплат.

Есть вопросы? Задайте их на форуме и мы постараемся ответить Вам как можно быстрее!

Copyright © 2008 — 2012