Биллинговая система Nodeny

Главная категория => Разработка => Тема начата: goletsa от 06 Декабря 2011, 11:12:59



Название: Вытаскивание данных клиента для своих нужд
Отправлено: goletsa от 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','Задание работников отмечено как завершенное'));



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


Название: Re: Вытаскивание данных клиента для своих нужд
Отправлено: OD_Thanatos от 06 Декабря 2011, 16:18:55
 $fio=$p->{fio};
 $login=$p->{name};

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

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


Название: Re: Вытаскивание данных клиента для своих нужд
Отправлено: goletsa от 13 Декабря 2011, 15:00:56
Там есть кусок кода который это делает но непонятно как он работает:

Код:
  
  $mid or last;
  # данные клиента для которого завершено задание
  ($userinfo,undef,$mId)=&ShowUserInfo($mid);
  $mId or last;
  $out.=$userinfo.$br2;