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


Создание подписи в документе из таблицы "Наши сотрудники"

сотрудники подпись

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

#1 marketolog

    Участник

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

Отправлено 04 Июль 2014 - 08:28

Здравствуйте КБшники.

Столкнулся с такой проблемой: Необходимо автоматизировать отправку информационных писем, сформировал html документ экспортируемый в pdf, pdf прикладывается к письму. В письме и документе должна быть подпись отправителя формата:
ФИО, Должность, Почта, Сотовый телефон.

Эти данные должны браться из таблицы "Наши сотрудники". Важный момент, данные для подписи должны браться того сотрудника который нажал кнопку "Отправить" (из авторизации пользователя).

Пробовал создавать в таблице контрагенты поле связь, но данные не заполняются. Пришел к выводу, что необходимо делать так:
1) Внести в таблицу контрагент системное поле "Подпись"
2) Создать вычисление: this = логин авторизированного пользователя (нажавшего кнопку).
i = 1
fio = 0
tel = 0
dol = 0
mail = 0
Цикл
Сравнить this с логином сотрудника i из подтаблицы "Наши сотрудники"
если нет i = i + 1
повторить цикл
если да
fio = fio["наши сотрудники", сотрудник i]
tel = телефон["наши сотрудники", сотрудник i]
dol = должность["наши сотрудники", сотрудник i]
mail = почта["наши сотрудники", сотрудник i]
Подпись = fio , dol , "88002007781" , tel , mail , "www.norinse.ru"

3) Вставить в шаблоне ссылку из поля подпись
4) При обращении к шаблону вызывать вычисление, а потом выполнять формирование документа.

Возможно ли таким образом реализовать поставленную задачу, либо есть более простой способ?

P.S. К сожалению, я слабо знаю java, если кто то может помочь написать выше предложенный код, буду безмерно благодарен.

#2 CbCoder

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

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

Отправлено 04 Июль 2014 - 10:21

Во-первых, вычисления в КБ пишутся не на "java", а на PHP. Во-вторых, у нас есть документация по вычислениям.

Что касается кода, его (мы, по крайней мере) в готовом виде здесь обычно не публикуем, за исключением простейших примеров, т.к. это платная услуга, но можем подсказать по алгоритму. В данном случае ничего сложного нет: берете id текущего пользователя из системной переменной $user['id'] и обращаетесь запросом к таблице Сотрудники с условием "поле пользователь равно id текущего пользователя". Остальное смотрите в документации и в примерах на форуме. То же, что вы написали выше в качестве алгоритма, к реальности имеет очень далекое отношение. Например, никаких циклов там и близко не требуется.

#3 marketolog

    Участник

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

Отправлено 14 Июль 2014 - 11:36

Итак, изучил документацию КБ. Что то смута полная получилась, прошу помощи в решении задачи.
Как я понял:
Создаю в таблице "Компании" "Контрагенты" поле "Подпись" с типом "Связь", тип связи "Наши сотрудники" "ФИО".
Выводить также поле "Должность", "Телефон рабочий", "Контактный E-mail".

В результате вместо подписи появляется цифра "5".

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

Наличие подставной подписи в документах обязательная часть любой ЦРМ претендующей на автоматизацию, почему это вообще реализуется через дополнительные расчеты?

#4 CbCoder

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

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

Отправлено 14 Июль 2014 - 12:01

Цитата

В результате вместо подписи появляется цифра "5"

Где именно появляется? В таблице или шаблоне? Приведите код вашего вычисления, я проверю его на корректность.

Цитата

Наличие подставной подписи в документах обязательная часть любой ЦРМ претендующей на автоматизацию, почему это вообще реализуется через дополнительные расчеты?

Потому, что "Клиентская база" в своей основе - это не совсем CRM, скорее универсальная платформа для создания бизнес-приложений на таблицах. Вся CRM-функциональность реализуется непосредственно в конфигурации, в том числе путем вычислений. Как следствие, минусом является то что для большей части автоматизации требуется программирование.

#5 marketolog

    Участник

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

Отправлено 14 Июль 2014 - 12:45

На данном этапе еще не использовал вычисление.
Просто вставил в шаблон pdf взять информацию с поля "Подпись", а в таблице выбрал одного из пользователей.

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

Можете ли направить, где я могу найти хотя бы подобное по функционалу вычисление. Ибо " берете id текущего пользователя из системной переменной $user['id'] и обращаетесь запросом к таблице Сотрудники с условием "поле пользователь равно id текущего пользователя". " уже вызывает сложности.

#6 CbCoder

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

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

Отправлено 14 Июль 2014 - 13:02

Цитата

На данном этапе еще не использовал вычисление.
Просто вставил в шаблон pdf взять информацию с поля "Подпись", а в таблице выбрал одного из пользователей.

Т.е. в таблице все нормально отображается (ФИО выбранного сотрудника с доп. полями), а в шаблоне просто цифра 5? Тогда проблема скорее всего не в правильности ваших действий, возможно всплыл какой-то баг, т.к. такого быть явно не должно. Отправьте заявку в техподдержку с описанием проблемы, ее проверят и дадут на исправление специалистам, если она действительно имеет место.

Что касается вычисления, то как я уже сказал, там ничего особо сложного нет:

$sotr = data_table("Наши сотрудники", "`Пользователь`=".$user['id']); // обращаемся запросом к таблице сотрудников с условием "пользователь=текущий" и получаем доступ к записи текущего сотрудника
$line['Подпись'] = $sotr['ID']; // т.к. Подпись - это поле связи, заносим в него ID записи полученного сотрудника


#7 CbCoder

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

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

Отправлено 14 Июль 2014 - 13:05

Цитата

Ибо " берете id текущего пользователя из системной переменной $user['id'] и обращаетесь запросом к таблице Сотрудники с условием "поле пользователь равно id текущего пользователя". " уже вызывает сложности.

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

#8 marketolog

    Участник

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

Отправлено 14 Июль 2014 - 14:21

Просмотр сообщенияCbCoder (14 Июль 2014 - 13:05) писал:

Понимаю, но потому собственно и рекомендуется на данный момент самостоятельно писать вычисления только людям с практикой и знанием программирования, желательно профессиональной.
Написал в ТП, жду ответа.
Есть навыки в программировании и HTML и паскалей, логика и алгоритмы представляется. Тут немного переплетается оригинальный php и персональные переменные КБ.

#9 marketolog

    Участник

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

Отправлено 15 Июль 2014 - 06:59

При работе кода выдает ошибку:
Настроил на "Отображение поля";

Цитата

Ошибка системы.

Error generated:
/home/norinse/public_html/include/functions1.php(449) : data_update()
/home/norinse/public_html/include/functions1.php(512) : form_event_recurs()
/home/norinse/public_html/fields.php(1700) : calc_line()
Ошибка SQL запроса:
UPDATE f_data42 SET Подпись='2' WHERE id=81
Unknown column 'Подпись' in 'field list'


Сообщение отредактировал marketolog: 15 Июль 2014 - 07:01


#10 CbCoder

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

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

Отправлено 15 Июль 2014 - 08:11

Может поле "Подпись" у вас по другому как-то зовется? Суть ошибки в том что программа не находит поле с таким именем в таблице Контрагенты.





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

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