Вопрос по вычислению
#1
Отправлено 03 Январь 2014 - 12:44
Есть 2 таблицы: Холодные звонки и Контрагенты.
Необходимо добавить кнопку в таблицу Холодные звонки, при нажатии на которую поля из этой таблицы (частично, не все) переносились в таблицу Контрагенты с созданием новой записи.
Например я хочу перенести 1 поле (Название компании) из таблицы Холодные звонки в таблицу Контрагенты:
$data = data_table("Холодные звонки","id=170"); // Заносим данные текущей строки в массив $data
$insert_data["Название компании"] = $data["Название"]; // Создаем массив для полей второй таблицы и заносим туда нужные значения из массива $data. При этом названия полей в этих двух таблицах разные.
insert_query($insert_data, "Контрагенты"); // Вставляем данные из массива $insert_data в таблицу "Контрагенты"
Вообщем это действие ни к чему не приводит.
#2
Отправлено 09 Январь 2014 - 10:38
Во-вторых, причин несрабатывания вычисления в данном случае может быть множество, поэтому лучше отправить заявку в техподдержку для проверки его тестировщиком. Синтаксически на первый взгляд все корректно.
#3
Отправлено 24 Январь 2014 - 15:46
Просьба помочь с вычислением (если такое вычисление не из области фантастики).
Опишу ситуацию.
Есть таблица "Обьекты"
Есть таблица "Сим карты", в таблице есть поле "Сим карта" и есть поле "Комментарий" (многострочное)
В таблице "Обьекты" есть поле "Сим карта" куда через поле связи подтягивается номер симки из таблицы "Сим карты"
Нужно сделать вычисление при котором при назначении сим карты на Обьект в таблице "Обьекты" - в таблицу "Сим карты" в поле комментарий автоматом заносилось название Обьекта куда сим карта назначена.
При снятии сим карты с Обьекта, надо что бы в таблице "Сим карты" в поле комментарий заносилась автоматически запись "Свободная", но при этом информация о предыдущем обьекте, куда была назначена эта карта, не была стерта.
Т.е. что типа такого (поле "Комментарий"):
Обьект1
Свободная
Обьект 2
Свободная
и так далее.
Заранее спасибо за ответ
#4
Отправлено 24 Январь 2014 - 16:10
if ($line['Сим карта']['row']!=0) { // сим-карта выбрана $sim_id = $line['Сим карта']['row']; $add_text = $line['Название объекта']."\n"; // 'Название объекта' заменяете на реальное имя поля (у вас в описании его нет) } else { // сим-карта убрана $sim_id = $event['changed'][111]['old']; // вместо 111 подставляете id поля "Сим карта" $add_text = "Свободная\n"; } $sim_data = data_table("Сим карты", "id=".$sim_id); $sim_data['Комментарий'].= $add_text; update_query($sim_data, "Сим карты", "id=".$sim_id);
Код не тестировал, возможны ошибки.
#5
Отправлено 25 Январь 2014 - 12:24
Вот такую ошибку возвращает: SELECT * FROM cb_data440 WHERE id= LIMIT 1
#6
Отправлено 25 Январь 2014 - 12:31
#7
Отправлено 25 Январь 2014 - 12:50
Первая таблица "Обьект" в которой есть два поля - Обьект и СИМ
Вторая таблица "СИМ" в которой есть два поля - СИМ и Комментарий
Вычисление поставил в таблицу Обьект и вычислять при изменинии поля СИМ
if ($line['СИМ']['row']!=0) { // сим-карта выбрана $sim_id = $line['СИМ']['row']; $add_text = $line['Обьект']."\n"; } else { // сим-карта убрана $sim_id = $event['changed'][440]['old']; $add_text = "Свободная\n"; } $sim_data = data_table("СИМ", "id=".$sim_id); $sim_data['Комментарий'].= $add_text; update_query($sim_data, "СИМ", "id=".$sim_id);
Сообщение отредактировал CbCoder: 25 Январь 2014 - 13:04
#8
Отправлено 25 Январь 2014 - 13:04
#9
Отправлено 25 Январь 2014 - 13:20
Вот код, который на данный момент в вычислении:
if ($line['СИМ']['raw']!=0) { // сим-карта выбрана $sim_id = $line['СИМ']['raw']; $add_text = $line['Обьект']."\n"; } else { // сим-карта убрана $sim_id = $event['changed'][440]['old']; // вместо 111 подставляете id поля "СИМ" в "Объектах" $add_text = "Свободная\n"; } $sim_data = data_table("СИМ", "id=".$sim_id); $sim_data['Комментарий'].= $add_text; update_query($sim_data, "СИМ", "id=".$sim_id);
Ошибка: SELECT * FROM cb_data440 WHERE id= LIMIT 1
Ругается на синтаксис: You have an error in your SQL syntax
#10
Отправлено 25 Январь 2014 - 13:50
P.S. Добавляйте код внутри тэгов [ code ][ /code ] (без пробелов), так легче читать (см. выше)
#11
Отправлено 25 Январь 2014 - 21:15
#12
Отправлено 30 Январь 2014 - 14:25
Помогите плс еще раз, если лимит моей наглости еще не зашкаливает
Все заработало если таблицы находятся в одной категории, но не получается заставить работать вычисление если таблицы в разных категориях
Категория "Обьекты", таблица "Обьекты", поле "Номер СИМ" с ИД 8220.
Категория "Операторы", таблица "Сим карты", поле "Комментарий".
Заранее спасибо!
#13
Отправлено 30 Январь 2014 - 14:44
#14
Отправлено 30 Январь 2014 - 16:24
#15
Отправлено 06 Февраль 2014 - 15:43
подмогните плс разобраться
$dut_id = $line['Номер ДУТ 1 (Бак 1)']['raw']; if ($dut_id != 0) { // ДУТ выбран $add_text = $line['Рег. номер']; $add_text .= (", " . $line['Клиент']); } else { // ДУТ убран $dut_id = $event['changed'][8290]['old']; $add_text = "Свободный"; } if ($dut_id) { $condition = "id=" . $dut_id; $dut_data = data_table("Позиции прихода", $condition); $dut_data['Хронология'] .= ($add_text . " (" . date('Y-m-d H:i:s') . ")\n"); update_query($dut_data, "Позиции прихода", $condition); }
Клиент подтягивается в таблицу Обьекты через поле связи и если я ставлю вот этот код: $add_text .= (", " . $line['Клиент']); то после того как вычисление срабатывает на выходе получаю:
000 ААА, Array (2014-02-06 14:41:08).
Как правильно прописать что бы вместо Array получить название клиента?
Заранее спасибо!
#16
Отправлено 06 Февраль 2014 - 17:28
#17
Отправлено 06 Февраль 2014 - 17:42
#18
Отправлено 07 Февраль 2014 - 15:44
сама формула
$line['текущий остаток'] = $line['текущее сальдо'] + $line['приход'] - $line['расход'];
я работала в таблице расходы. создала аналогию простенькой кассы
спасибо
#19
Отправлено 10 Февраль 2014 - 09:40
$prev_record = data_table("Ваша таблица", "status=0 ORDER BY id DESC"); $line['текущий остаток'] = $prev_record['текущее сальдо'] + $line['приход'] - $line['расход'];
#20
Отправлено 14 Апрель 2015 - 16:54
global $done_calcs;
if (!$done_calcs) $done_calcs = array();
$now_raw = intval($line['№']['raw']);
if (!in_array($now_raw,$done_calcs))
{
$sql = "SELECT `f2511` FROM `".DATA_TABLE."150` WHERE `f1880`='{$now_raw}' AND `status`=0 ORDER BY `add_time` DESC LIMIT 1";
$result = sql_fetch_assoc(sql_query($sql));
if ($result['f2511'])
$line['№']['На данный момент ответственный'] = $result['f2511'];
}
Количество пользователей, читающих эту тему: 14
0 пользователей, 14 гостей, 0 анонимных