Перейти к содержимому


Добавление записи через вычисление


Сообщений в теме: 196

#161 f-jeka

    Активный участник

  • Пользователи
  • PipPipPip
  • 196 сообщений

Отправлено 26 Август 2016 - 01:29

Вычисление настроено на событие "Сохранение в таблице"
Обычные пользователи создают и сохраняют таблицы также как и администраторы.
Как сделать чтобы оно срабатывало под пользователем?

#162 nposys

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 26 Сентябрь 2016 - 09:21

Есть таблица "Заказы" и подтаблица "Работа по заказам".
В таблице "Заказы" создано вычисление "Автосоздание задачи по заказу". Вычислять при условии "Сохранение в таблице".

Вычисление проверяет, существуют ли записи в таблице "Работа по заказам" для данного заказа. Если нет, то автоматически создает первую запись работы по данному заказу.
Однако, когда создаем новую карточку заказа, заполняем все поля и нажимаем "Сохранить", вычисление срабатывает, запись в подтаблице создается, но почему-то сразу помечается как удаленная. В чем может быть причина такого автоудаления? При создании записии в подтаблице в поле "status" явно прописано значение 0.

Никаких вычислений автоматически удаляющих записи в таблице "Работа по заказам" не создано.

#163 Аlex Jet

    Активный участник

  • Пользователи
  • PipPipPip
  • 38 сообщений
  • Пол:Мужчина
  • Город:Уфа

Отправлено 03 Октябрь 2016 - 16:02

Есть таблицы Клиенты и Сделки. При создании строки в таблице Сделки пользователь заполняет поля ФИО, Телефон, Параметр 1, Параметр 2...

Тип поля ФИО - связь с таблицей Клиенты.

Если клиент новый, то при добавлении Сделки создается новый клиент в поле ФИО, в поле Телефон стоит вычисление $line['ФИО']['Телефон'] = $line['Телефон']; которое добавляет телефон из таблицы Сделки в таблицу Клиенты. Здесь все работает.

Но если клиент уже есть, то при выборе его в поле ФИО таблицы Сделки, номер телефона остается пустым. И если сохранить эту запись, то поле Телефон в таблице Клиенты обнулится.

Как сделать так, чтобы поле телефон подгружалось сразу же при выборе существующего клиента в поле ФИО?
Белый сервис - сервисный центр, работающий на одной из лучших CRM.

#164 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 10 Октябрь 2016 - 10:25

1. В уже имеющемся вычислении по заполнению поля добавить условие на проверку заполненности $line['ФИО']['Телефон'] и не заполнять если оно уже заполнено.
2. Добавить обратное вычисление на заполнение поля Телефон из контрагента, т.е. $line['Телефон'] = $line['ФИО']['Телефон']; при событии изменения поля ФИО.

#165 Аlex Jet

    Активный участник

  • Пользователи
  • PipPipPip
  • 38 сообщений
  • Пол:Мужчина
  • Город:Уфа

Отправлено 10 Октябрь 2016 - 17:09

Сделал вот так, если оставить поле телефон пустым и выбрать существующего контрагента с указанным телефоном, то поле телефон обнуляется

if ($line['Телефон клиента'] == "") {
	    $line['ФИ клиента']['Телефон клиента'] = $line['Телефон клиента'];
}
else {
	    $line['Телефон клиента'] = $line['ФИ клиента']['Телефон клиента'];
}

Можно ли сделать так, чтобы поле телефон заполнялось не после сохранения записи, а во время редактирования?
Белый сервис - сервисный центр, работающий на одной из лучших CRM.

#166 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Октябрь 2016 - 09:31

Цитата

Сделал вот так, если оставить поле телефон пустым и выбрать существующего контрагента с указанным телефоном, то поле телефон обнуляется

А не наоборот должно быть?

Цитата

Можно ли сделать так, чтобы поле телефон заполнялось не после сохранения записи, а во время редактирования?

На данный момент нет. Механизм реализован только в подтаблицах.

#167 Аlex Jet

    Активный участник

  • Пользователи
  • PipPipPip
  • 38 сообщений
  • Пол:Мужчина
  • Город:Уфа

Отправлено 11 Октябрь 2016 - 18:33

Просмотр сообщенияCbCoder (11 Октябрь 2016 - 09:31) писал:

На данный момент нет. Механизм реализован только в подтаблицах.

Тогда можно ли перезагрузить страницу, сохранив все заполненные поля при выборе существующего контрагента?
Белый сервис - сервисный центр, работающий на одной из лучших CRM.

#168 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Октябрь 2016 - 09:41

Можно нажать кнопку Сохранить программно через JS, точнее вызывать функцию на кнопке. Недавно писали на форуме, можете поискать.

#169 VBochkov

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений
  • Пол:Мужчина

Отправлено 06 Ноябрь 2016 - 21:18

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

#170 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Ноябрь 2016 - 09:43

Боюсь что нет.

#171 vx@ice07.ru

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений

Отправлено 27 Апрель 2017 - 13:53

как создать карточку должника
с полем связь где автоматически ищется существующий контрагент по ИНН
создать если не существует и вычислить поля при сохранении новой записи
или же найти id и привязать к существующей записи поле связь по контрагенту!?

#172 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 12 Январь 2018 - 01:32

Здравствуйте.
При создании договора нужно что бы автоматом присваивался номер предыдущий + 1 в пределах текущего года.
создал вычисление при сохранении:
if (!$line['Номер'])
{

// запрос последней строки (номер, год)
$result1 = data_select(78, "`status`<>'2' ORDER BY `id` DESC LIMIT 1");
$row1 = sql_fetch_assoc($result1);
$num= $row1['f848'] + 1;
$f5500 = $row1['f5500'];

// проверка на уникальность
$result2 = data_select(78, "`status`<>'2' and `f848` >= $num and `f5500` = $f5500 ORDER BY `f848`");

while($row2 = sql_fetch_assoc($result2))
{


if ($num != $row2['f848']) break;
{
$num++;
}
}
$line['Номер']='$num';
$line['Год']='$f5500';
}

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

#173 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 15 Январь 2018 - 15:13

А в ответ тишина :( , ни у кого мыслей нет или я написал может не внятно?

#174 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 16 Январь 2018 - 12:32

Разобрался не правильно себе поставил ТЗ.
Вычисление должно стартовать при создании, соответственно конструкция должна быть:
if($event['is_new_line'] != 1)
{
}
И самое главное искать надо не последнюю строку (новую - пустую), а предпоследнюю.

#175 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 26 Январь 2018 - 14:54

Здравствуйте.

В свойствах таблицы включено "Сохранение при добавлении" - при создании часть данных заполняется автоматически с помощью вычисления.

Есть другое вычисление при сохранении таблицы (часть данных дублируется в другую таблицу).

Если запись в таблице редактировать вычисление срабатывает верно, а если создавать вновь, редактировать и сохранять переносятся только данные заполненные автоматически.

#176 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Январь 2018 - 17:26

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

#177 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 26 Январь 2018 - 21:49

Спасибо, все работает.

#178 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 08 Февраль 2018 - 11:21

Здравствуйте.
Как будет выглядеть вычисление при добавлении записи в подтаблице. Т. е. вешаем вычисление в подтаблицу на изменение поле связи и заполняем часть копированием из из основной таблицы, часть пересчитываем.

#179 maksbazhin

    Активный участник

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 09 Февраль 2018 - 12:41

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

#180 Tony999

    Активный участник

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 09 Февраль 2018 - 22:41

Попробуйте создать в подтаблице поле, заполняемое по умолчанию. Например, поле Дата с установкой по умолчанию: текущая дата. Привяжите к этому полю свое вычисление на изменение и сохранение. Или попробуйте поле ID на сохранение. Разумеется, по полю связи можно брать данные из основной таблицы.
Навреное, можно и проще, но что описал - точно работает.
Умные сайты на заказ
https://info.crm-master.info





Количество пользователей, читающих эту тему: 8

0 пользователей, 8 гостей, 0 анонимных