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


Помогите с вычислениями


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

#1 Tony999

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

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

Отправлено 22 Февраль 2012 - 02:45

Версия 1.9.5

Есть таблицы "Клиенты", "События", "Проекты"

Таблица "События" (может быть и как подчиненная) имеет связанные поля "Клиент", "Проекты" из соответствующих таблиц.

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

Как мне в таблицу "Проекты" "достать" название клиента из таблицы "Клиенты" (или из таблицы "События надо)?

Пытался так:


$cl3 = data_table("Проекты","id=$ID");
$cl4 = data_table("События","id='".$cl3['Проект']."'");
$cl1 = data_table("Клиенты", "id='".$cl4['Клиент']."'");
$line['Клиент']=$cl1[Клиент];

Но не получается. Подскажите, плииз!

Сообщение отредактировал Tony999: 22 Февраль 2012 - 02:52

Умные сайты на заказ
https://info.crm-master.info

#2 CbCoder

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

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

Отправлено 22 Февраль 2012 - 10:42

Вычисление при изменении поля Проект в таблице События:
$line['Проект']['Клиент'] = $line['Клиент'];

Т.е. при выборе проекта в Событии клиент из него копируется в выбранный проект.

#3 Tony999

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

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

Отправлено 22 Февраль 2012 - 15:55

Большое спасибо! Все работает.
Только теперь понял, что в данном случае Проект - это поле связи, а не часть адреса поля Клиент.
В документации, к сожалению, об этом не очень ясно написано.
Умные сайты на заказ
https://info.crm-master.info

#4 bryukhov

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

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

Отправлено 22 Февраль 2012 - 16:29

Как делается?
  • есть счет + накладная
  • таблица номенклатура
  • Склад заполненный из таблицы номенклатура
  • Необходимо реализовать списание,
  • и возврат на склад позиций накладной.
как реализуется?

#5 CbCoder

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

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

Отправлено 22 Февраль 2012 - 17:04

Слишком общее описание, реализовать можно разными вариантами.

#6 Tony999

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

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

Отправлено 24 Февраль 2012 - 02:42

Еще вопрос....
Есть таблица "Клиенты"
С ней связаны таблицы "Договора" и "Сервис".
При создании записи в таблице "Сервис" как туда подставить номер договора из таблицы "Договора"?
Спасибо!
Умные сайты на заказ
https://info.crm-master.info

#7 CbCoder

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

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

Отправлено 27 Февраль 2012 - 09:46

А каким образом связаны таблицы Сервис и Договора? Если через клиента, то вначале необходимо выбрать клиента. Затем через вычисление можно автоматически заполнить поле договора:
$dog = data_table("Договора","`Клиент`='".$line['Клиент']."'")
$line['Договор'] = $dog['ID'];

Но следует учесть что у одного клиента в общем случае может несколько договоров (связь "один ко многим"), данное вычисление выбирает только первый из них. Если у вас договор всегда один - то все нормально.

#8 bryukhov

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

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

Отправлено 01 Март 2012 - 16:44

а как выбрать в вычислении договора, только свои записи (Кто добавил)?
Правильно я понял вычисление выше работает согласно правам доступа и чужие записи не трогает?
(при импорте цепляет чужие записи :) хочу исправить через вычисления)

Сообщение отредактировал bryukhov: 01 Март 2012 - 16:47


#9 CbCoder

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

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

Отправлено 01 Март 2012 - 17:32

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

$dog = data_table("Договора","`Клиент`='".$line['Клиент']."' and `Кто добавил`=".$line['Кто добавил'])
$line['Договор'] = $dog['ID'];


#10 bryukhov

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

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

Отправлено 01 Март 2012 - 18:40

спасибо

#11 arsenal

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

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

Отправлено 29 Март 2012 - 12:42

Уважаемые программисты!
Подскажите, пожалуйста. Как в коде РНР вывести окошко с запросом и далее проанализировать какую кнопку нажали? Пробую стандартные команды типа
echo "<form>";
echo "<input type=radio name=answer value=yes checked>Да";
echo "<input type=radio name=answer value=no>Нет";
echo "<input type=submit value=Отправить>";
echo "</form>";
Но здесь окошко с элементами формы выводится во весь экран и сразу закрывается, т.е. не ждет когда я заполню форму и нажму "Отправить".
Хотелось бы как в доп. действии со всплывающим окном.

#12 CbCoder

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

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

Отправлено 29 Март 2012 - 13:00

Какой именно код имеется ввиду? Куда он вставляется?

#13 arsenal

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

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

Отправлено 29 Март 2012 - 13:09

Код в вычислении "при сохранении таблицы"

#14 CbCoder

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

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

Отправлено 29 Март 2012 - 13:45

В вычислениях (при сохранении, или любых других) так сделать не получится. Любой вывод формы, во-первых, остановит дальнейшее выполнение скрипта (вернее вынужден будет остановить, иначе продолжится вывод стандартной страницы, как в вашем случае), во-вторых, полученные формой данные необходимо затем куда-то отправить. Ваше вычисление получить результат от формы уже никак не сможет.





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

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