Биллинговая система Nodeny
27 Апреля 2024, 08:46:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Вытаскивание данных клиента для своих нужд  (Прочитано 3389 раз)
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« : 06 Декабря 2011, 11:12:59 »

Возникла задача отправлять на почту результаты выполнения сервисов.
Соотвесвенно весь код засунут в sub endjobnow в job.pl
Пока получилось чтото типа:
Код:
sub endjobnow
{
 $p=&check_del_job;
 $mid=$p->{mid};
 $time=$t-$p->{time};
 $h=int $F{level};
 $h=0 if $h<0;
 # работники, которым стоит галка `замечание`
 $h.=(!!$F{"w$_"} && ",$id") foreach (keys %$W);

 $reason=$p->{reason};
 $h="$reason#$time,$p->{time},$h";
 $coment="Админ, выдавший задание: ".&Filtr($p->{admin})."\n";
 $coment.="Комментарий при постановке задания: ".&Filtr_mysql($p->{coment})."\n\n" if $p->{coment};
 $coment.="Комментарий при принятии работы: \n".&Filtr_mysql($F{coment}) if $F{coment};

 use Net::SMTP::TLS;
 my $mailer = new Net::SMTP::TLS(
    'smtp.gmail.com',
    Hello   =>      'smtp.gmail.com',
    Port    =>      587,
    User    =>      'username',
    Password=>      'password');
 $mailer->mail('mail@mail');
 $mailer->to('mail@mail');

 
 $mailmessage="Subject: Сервис закрыт\n";
 $mailmessage.=$coment;
 $mailmessage.=$userinfo;
 $mailer->data;
 $mailer->datasend($mailmessage);
 $mailer->dataend;
 $mailer->quit;
 
 # ставим полное условие на случай если после запроса параллельно кто-то дал команду закончить задание
 $rows=&sql_do($dbh,"UPDATE pays SET category=461,admin_id=$Admin_id,admin_ip=INET_ATON('$ip'),reason='$h',coment='$coment',time=$t WHERE id=$Fidjob AND type=50 AND category=460 LIMIT 1");
 $rows<1 && &Error("Задание не отмечено как завершенное. Возможно пока вы вводили данные другой админ завершил выполнение задания, либо удалил его.$go_back",$tend);
 &OkMess(&div('big','Задание работников отмечено как завершенное'));



Хотелось бы еще както вставить данные польнователя - логин, адрес, фио.
Как это проще всего сделать?
Записан
OD_Thanatos
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля Email
« Ответ #1 : 06 Декабря 2011, 16:18:55 »

 $fio=$p->{fio};
 $login=$p->{name};

Адрес вытягивать запросами из dopdata

По идее, нужный запрос должен быть в том же файле, в месте, где выдается отчет о завершении
« Последнее редактирование: 06 Декабря 2011, 16:21:23 от OD_Thanatos » Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #2 : 13 Декабря 2011, 15:00:56 »

Там есть кусок кода который это делает но непонятно как он работает:

Код:
  
  $mid or last;
  # данные клиента для которого завершено задание
  ($userinfo,undef,$mId)=&ShowUserInfo($mid);
  $mId or last;
  $out.=$userinfo.$br2;
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!