Сообщение отредактировал Mouse: 03 Сентябрь 2014 - 16:23
Добавление записи через вычисление
#121
Отправлено 03 Сентябрь 2014 - 16:17
#122
Отправлено 03 Сентябрь 2014 - 16:23
1.таблица Прайс-лист - поле "цена поставщика", поле "валюта поставщика (название валюты)" и поле "цена"
2.таблица Валюты - поле "Валюта (название валюты)" и поле "Курс". в данной таблице всего 3 строки, тк. 3 валюты, а их курс изменяется ежедневно.
"Валюта поставщика" связь "валюта"
задача "цена поставщика" по полю "валюта поставщика" умножить на "курс" данной валюты из таблицы валюта и записать в поле "цена".
#123
Отправлено 03 Сентябрь 2014 - 17:12
#124
Отправлено 04 Сентябрь 2014 - 12:08
CbCoder (03 Сентябрь 2014 - 17:12) писал:
Скажите, а можно как-то сводить в одной ячейке значения разных. к примеру поле артикул это ID типа-ID категории-ID подкатегории/ID товара.
т.е вида: NN-NNN-NNN/NNN, если подкатегории нет то NN-NNN/NNN?
#125
Отправлено 04 Сентябрь 2014 - 13:10
Например:
$line['Результат'] = $line['Поле1']."-".$line['Поле2'];
Точка в PHP как раз служит для конкатенации строк. Т.е. если Поле1 - "Лебедев", а Поле2 - "Кумач", то в поле Результат будет "Лебедев-Кумач".
#126
Отправлено 04 Сентябрь 2014 - 14:17
#127
Отправлено 02 Апрель 2015 - 01:09
Создал вычисление на событие "Сохранение в таблице" Пример на демо аккаунте https://demo.clientb...php?calc_id=931
$data['Компания'] = $id; insert_query($data,"Работа с клиентами");При создании нового Контрагента новая запись в таблице "Работа с клиентом" не появляется.
Понимаю что простой вопрос, но все таки не могу разобраться. Подскажите, пожалуйста, как сделать правильно.
#128
Отправлено 03 Апрель 2015 - 09:50
При чем записи создаются только один раз и независимо от добавленного мной вычисления. Если создать второго или больше Контрагента, то записи в Работе с клиентами не появляются. Какое вычисление создает эти записи? Как сделать чтоб всегда при добавлении Контрагента создавалась одна запись в Работе с клиентами?
#129
Отправлено 05 Апрель 2015 - 13:28
f-jeka (02 Апрель 2015 - 01:09) писал:
$data['Компания'] = $id; insert_query($data,"Работа с клиентами");При создании нового Контрагента новая запись в таблице "Работа с клиентом" не появляется.
Может плохо смотрю, но ошибок не вижу, код тривиальный. Запись должна добавиться.
#130
Отправлено 15 Май 2015 - 02:43
#131
Отправлено 15 Май 2015 - 09:57
$data['Компания'] = $id;
Предустановленной переменной $id в вычислениях нет, есть $ID или эквивалентное ей $line['ID']. В итоге вы записываете в поле пустоту вместо создания связи с родительской таблицей.
#132
Отправлено 15 Май 2015 - 11:34
$data['Компания'] = $line['ID']; insert_query($data,"Работа с клиентом");То же самое. Запись создается, но без привязки.
Так тоже не работает
$data['Компания'] = $ID; insert_query($data,"Работа с клиентом");
#133
Отправлено 15 Май 2015 - 11:57
#134
Отправлено 15 Май 2015 - 12:18
Подскажите еще один момент. Теперь запись создается каждый раз при нажатии в Контрагенте Редактировать-Сохранить, хотя в вычислении стоит галочка "Запретить рекурсивный вызов"
Можно ли задать условие, что если есть хотя бы одна запись в подтаблице привязанная к основной таблице, то вычисление не срабатывало?
#135
Отправлено 15 Май 2015 - 13:35
if ($line['Работа с клиентом']['Компания'] == NULL)
{
$data['Компания'] = $line['ID'];
insert_query($data,"Работа с клиентом");
}
#136
Отправлено 15 Май 2015 - 14:35
Цитата
А при чем тут "рекурсивный вызов", не совсем понял? Эта опция запрещает повторный вызов вычисления одномоментно, т.е. когда одно вычисление вызывает другое по кругу (поэтому по сути актуально только для вычислений на событие изменения полей). Она никак не влияет на повторный вызов, если вы сами вручную вызвали событие (т.е. в данном случае нажали на кнопку).
Цитата
Почему нет то? Обращаетесь запросом к подтаблице и проверяете, и есть ли там нужная запись. Если она уже есть - код не выполняется.
#138
Отправлено 15 Май 2015 - 14:49
По идее оно обращается к подтаблице с проверкой есть там записи или нет. Если записей нет, то выполняется добавление записи.
Но что то в этом условии не так. Каждый раз при нажатии Редактировать - Сохранить появляется запись в подтаблице.
#139
Отправлено 15 Май 2015 - 14:55
Цитата
К какой подтаблице? Я в этом коде вижу только обращение к некоему полю связи "Работа с клиентом". В переменной $line никаких таблиц нет, только поля.
#140
Отправлено 15 Май 2015 - 14:58
А как правильно написать проверку есть записи или нет?
Количество пользователей, читающих эту тему: 14
0 пользователей, 14 гостей, 0 анонимных