1
Changeset 85095b7 – MultiMag

Changeset 85095b7


Ignore:
Timestamp:
Jan 26, 2012, 1:24:31 AM (11 years ago)
Author:
Blacklight <blacklight@…>
Branches:
master
Children:
90ef7fb
Parents:
c0dde68
Message:
  • Отправка email сообщений теперь осуществляется при помощи нового класса, корректно формирующего сообщения для outlook и некоторых webmail клиентов. Старые классы удалены.
  • Продолжается перенос отчётов на новый движок
  • Отправка сообщений cli скриптами теперь осуществляется только при возникновении ошибок, либо если отправка сообщений - задача скрипта.
  • Отчёт об ошибках теперь отображается постранично
Files:
1 added
3 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • cli/core.cli.inc.php

    rc0dde68 r85095b7  
    2020include_once($CONFIG['location']."/common/core.common.php");
    2121
    22 
    2322class MysqlException extends Exception
    2423{
  • cli/db_optimize.php

    rc0dde68 r85095b7  
    3939include_once($CONFIG['site']['location']."/include/doc.kordolga.php");
    4040
    41 $mail->FromName = $CONFIG['site']['name'].' - Site Service System'; 
    42 $mail->CharSet  = "UTF-8";
    43 $mail->AddAddress($CONFIG['site']['doc_adm_email'], $CONFIG['site']['doc_adm_email'] ); 
    44 $mail->Subject="DB Check report";
    45 
    4641$mail_text='';
    47 
    4842
    4943$tim=time();
     
    127121while($nxt=mysql_fetch_row($res))
    128122{
    129         //if( ($nxt[1]>2) && ($nxt[1]!=8) && ($nxt[1]!=4) && ($nxt[1]!=5)  ) continue;
    130         //DocSumUpdate($nxt[0]);
    131123        $dt=date("d.m.Y H:i:s",$nxt[3]);
    132124        $typename=$doc_types[$nxt[1]]."N $nxt[2] от $dt";;
     
    138130                echo $text;
    139131                $mail_text.=$text;
    140                 //echo " ---------- ".seek_and_up($nxt[3],$badpos)."\n";
    141                
    142132                $i++;
    143133        }
    144        
    145         //else echo "$nxt[0]($typename): ok!\n";
    146134}
    147135if($i)
     
    188176if($mail_text)
    189177{
    190         $mail_text="При автоматической проверке базы данных сайта найдены следующие проблемы:\n****\n\n".$mail_text."\n\n****
    191         Необходимо срочно исправить найденные ошибки!";
     178        try
     179        {
     180                $mail_text="При автоматической проверке базы данных сайта найдены следующие проблемы:\n****\n\n".$mail_text."\n\n****\nНеобходимо исправить найденные ошибки!";
    192181
    193         $mail->Body=$mail_text;
    194         if($mail->Send())
     182                mailto($CONFIG['site']['doc_adm_email'], "DB check report", $mail_text);
    195183                echo "Почта отправлена!";
    196         else echo"ошибка почты!".$mail->ErrorInfo;
     184        }
     185        catch(Exception $e)
     186        {
     187                echo"Ошибка отправки почты!".$e->getMessage();
     188        }
    197189}
    198190else echo"Ошибок не найдено, не о чем оповещать!\n";
  • cli/dolg_info.php

    rc0dde68 r85095b7  
    2424
    2525require_once($CONFIG['site']['location']."/core.php");
    26 //require_once($CONFIG['site']['location']."/include/class.phpmailer.php");
    2726require_once($CONFIG['site']['location']."/include/doc.core.php");
    28 
    29 $mail = new PHPMailer(); 
    30  
    31 $mail->From     = $CONFIG['site']['admin_email'];
    32 $mail->FromName = $CONFIG['site']['name'].' - Site Service System'; 
    33 $mail->Mailer   = "mail"; 
    34 $mail->CharSet  = "UTF-8";
    35 $mail->Subject="Ваши долги";
    3627
    3728$mail_text=array();
     
    4132while($nxt=mysql_fetch_row($res))
    4233{
    43         //if($nxt[2]==0)        continue;
    4434        $dolg=DocCalcDolg($nxt[0],0);
    4535        if( $dolg>0 )
     
    5949        $xmppclient->presence();
    6050
    61 $res=mysql_query("SELECT `id`, `name`, `email`, `jid` FROM `users`");
    62 while($nxt=mysql_fetch_row($res))
    63 {
    64         if($mail_text[$nxt[0]])
     51        $res=mysql_query("SELECT `id`, `name`, `email`, `jid` FROM `users`");
     52        while($nxt=mysql_fetch_row($res))
    6553        {
    66                 $dolg=sprintf("%0.2f",$sum_dolga[$nxt[0]]);
    67                 $text="Уважаемый(ая) $nxt[1]!\nНекоторые из Ваших клиентов, для которых Вы являетесь ответственным менеджером, имеют непогашенные долги перед нашей компанией на общую сумму {$dolg} рублей.\nНеобходимо в кратчайший срок решить данную проблему!\n\nВот список этих клиентов:\n".$mail_text[$nxt[0]]."\n\nПожалуйста, не откладывайте решение проблемы на длительный срок!";
    68                
    69                 $mail->ClearAddress();
    70                 $mail->AddAddress($nxt[2],$nxt[1]);
    71                 $mail->Body=$text;
    72                 if($mail->Send())
    73                         echo "\nПочта отправлена!";
    74                 else echo"\nошибка почты!".$mail->ErrorInfo;
    75                
    76                 if($nxt[3])
     54                if($mail_text[$nxt[0]])
    7755                {
    78 
     56                        $dolg=sprintf("%0.2f",$sum_dolga[$nxt[0]]);
     57                        $text="Уважаемый(ая) $nxt[1]!\nНекоторые из Ваших клиентов, для которых Вы являетесь ответственным менеджером, имеют непогашенные долги перед нашей компанией на общую сумму {$dolg} рублей.\nНеобходимо в кратчайший срок решить данную проблему!\n\nВот список этих клиентов:\n".$mail_text[$nxt[0]]."\n\nПожалуйста, не откладывайте решение проблемы на длительный срок!";
     58                       
     59                        mailto($nxt[2], "Ваши долги", $text);
     60                        if($nxt[3])
     61                        {
    7962                                $xmppclient->message($nxt[3], $text);
    8063                                echo "\nСообщение было отправлено через XMPP!";
     64                        }
     65                        echo $text."\n\n\n\n";
    8166
    8267                }
    83                
    84                 echo $text."\n\n\n\n";
    8568        }
    86 }
    87 
    8869        $xmppclient->disconnect();
    8970        echo "\nСообщение было отправлено через XMPP!";
     
    9374        echo"\nНевозможно отправить сообщение XMPP";
    9475}
     76catch(Exception $e)
     77{
     78        echo"Ошибка отправки почты!".$e->getMessage();
     79}
    9580
    9681?>
  • cli/price_an.php

    rc0dde68 r85095b7  
    2323include_once("$base_path/config_cli.php");
    2424
    25 set_time_limit(60*120); // Выполнять не более 15 минут
     25require_once($CONFIG['cli']['location']."/core.cli.inc.php");
     26
     27set_time_limit(60*120); // Выполнять не более 120 минут
    2628$start_time=microtime(TRUE);
    2729
    28 if(!$CONFIG['price']['dir'])    exit(0);
    29 
     30if(!$CONFIG['price']['dir'])
     31{
     32        echo"Директория с прайсами не определена, завершаем работу...\n";
     33        exit(0);
     34}
    3035$mail_text='';
    3136
     
    5257
    5358$file=file("http://export.rbc.ru/free/cb.0/free.fcgi?period=DAILY&lastdays=0&separator=%2C&data_format=BROWSER");
    54 foreach($file as $fl)
     59if(!$file)
     60{
     61        $mail_text.="Не удалось получить курсы валют!\n";
     62        echo "Не удалось получить курсы валют!\n";
     63}
     64else foreach($file as $fl)
    5565{
    5666        $fl=trim($fl);
     
    5868        mysql_query("UPDATE `currency` SET `coeff`='$fa[5]' WHERE `name`='$fa[0]'");
    5969}
    60 
    6170
    6271
     
    7685        $dh  = opendir($CONFIG['price']['dir']);
    7786        if(!$dh)                                        throw new Exception("Не удалось открыть каталог с прайсами ({$CONFIG['price']['dir']})");
     87        SetStatus('Loading prices');
    7888        while (false !== ($filename = readdir($dh)))
    7989        {
     
    8797                $xml = $zip->getFromName("content.xml");
    8898                $zip->close();
    89                
    90                 SetStatus('Loading prices');
    91                
     99                               
    92100                $loader=new ODFContentLoader($xml);
    93101                if($firm=$loader->detectFirm())
     
    98106                        unlink($CONFIG['price']['dir']  .'/'.$filename);
    99107                }
    100                 else $msg.="NOT DETECTED!";
    101                
    102                
    103                 if($msg)
    104                 {
    105                         log_write($CONFIG['price']['dir'], $msg);
     108                else
     109                {
     110                        $msg.="соответствий не найдено. Прайс не обработан.";
    106111                        $mail_text.="Анализ прайсов: $msg\n";
    107112                }
    108         }
    109 
    110 
     113                log_write($CONFIG['price']['dir'], $msg);
     114        }
    111115
    112116// Выборка
    113 $mail_text.="Начинаем анализ...\n";
    114117echo "Начинаем анализ...\n";
    115118mysql_query("UPDATE `price` SET `seeked`='0'");
     
    207210
    208211mysql_query("DROP TABLE `parsed_price`");
    209 if(mysql_errno())       echo mysql_error();
     212if(mysql_errno())
     213{
     214        $msg="Ошибка удаления старой таблицы с соответствиями: ".mysql_error()."\n";
     215        echo $msg;
     216        $mail_text.=$msg;
     217}
     218       
    210219mysql_query("RENAME TABLE `parsed_price_tmp` TO `parsed_price` ;");
    211 if(mysql_errno())       echo mysql_error();
    212 
    213 $mail_text.="Анализ прайсов завершен успешно!";
     220if(mysql_errno())
     221{
     222        $msg="Ошибка переименования таблицы с соответствиями: ".mysql_error()."\n";
     223        echo $msg;
     224        $mail_text.=$msg;
     225}
     226
    214227echo    "Анализ прайсов завершен успешно!";
    215228// ====================== ОБНОВЛЕНИЕ ЦЕН =============================================================
     
    261274                        mysql_query("UPDATE `doc_base` SET `cost`='$mincost', `cost_date`=NOW() WHERE `id`='$nxt[0]'");
    262275                        if(mysql_errno())       throw new Exception(mysql_error());
    263 
    264276                        echo $txt;
    265                         $mail_text.=$txt;
    266277                }
    267278        }
     
    275286}
    276287
     288$work_time=microtime(TRUE)-$start_time;;
     289
     290$h=$m=0;
     291$s=round($work_time*100)/100;
     292if($s>60)
     293{
     294        $m=floor($s/60);
     295        $s-=$m*60;
     296}
     297
     298if($m>60)
     299{
     300        $h=floor($m/60);
     301        $m-=$h*60;
     302}
     303
     304$text_time='Скрипт выполнен за ';
     305if($h)  $text_time.="$h часов ";
     306if($m)  $text_time.="$m минут ";
     307if($s)  $text_time.="$s секунд ";
     308$text_time.=" (всего $work_time секунд)\n";
     309
     310echo $text_time;
     311
    277312// ===================== ОТПРАВКА ПОЧТЫ ===============================================================
    278313if($mail_text)
    279314{
    280         $work_time=microtime(TRUE)-$start_time;;
    281         $send=1;
    282        
    283         $h=$m=0;
    284         $s=round($work_time*100)/100;
    285         if($s>60)
    286         {
    287                 $m=floor($s/60);
    288                 $s-=$m*60;
    289         }
    290        
    291         if($m>60)
    292         {
    293                 $h=floor($m/60);
    294                 $m-=$h*60;
    295         }
    296        
    297         $text_time='';
    298         if($h)  $text_time.="$h часов ";
    299         if($m)  $text_time.="$m минут ";
    300         if($s)  $text_time.="$s секунд ";
    301         $text_time.=" (всего $work_time секунд)";
    302        
    303         if($CONFIG['site']['doc_adm_email'])
    304                 $mail->AddAddress($CONFIG['site']['doc_adm_email'], 'To document administrator' );
    305         else if($CONFIG['site']['admin_email'])
    306                 $mail->AddAddress($CONFIG['site']['admin_email'], 'To site administrator' );
    307         else $send=0;
    308         if($send)
    309         {
    310                 $mail->Subject="Price analyzer";
    311                 $mail_text="При анализе прайс-листов произошло следующее:\n****\n\n".$mail_text."\n\n****\nЕсли произошла ошибка, её необходимо срочно исправить!\n\nСкрипт выполнен за $text_time";
    312                 $mail->Body=$mail_text;
    313                 if($mail->Send())
    314                         echo "\n\nПочта отправлена!\n";
    315                 else echo"\n\nошибка почты!".$mail->ErrorInfo."\n";
    316         }
    317 }
     315        try
     316        {       
     317                $mail_text="При анализе прайс-листов произошло следующее:\n****\n\n".$mail_text."\n\n****\nНайденные ошибки желательно исправить в кратчайший срок!!\n\n$text_time";
     318                mailto($CONFIG['site']['admin_email'], "Price analyzer errors", $mail_text);
     319                mailto($CONFIG['site']['doc_adm_email'], "Price analyzer errors", $mail_text);
     320                echo "Почта отправлена!";
     321        }
     322        catch(Exception $e)
     323        {
     324                echo"Ошибка отправки почты!".$e->getMessage();
     325        }
     326       
     327       
     328}
     329else echo"Ошибок не найдено, не о чем оповещать!\n";
    318330
    319331mysql_query("DELETE FROM `sys_cli_status` WHERE `id`='$status_id'");
  • cli/resp_clear.php

    rc0dde68 r85095b7  
    33//      MultiMag v0.1 - Complex sales system
    44//
    5 //      Copyright (C) 2005-2010, BlackLight, TND Team, http://tndproject.org
     5//      Copyright (C) 2005-2012, BlackLight, TND Team, http://tndproject.org
    66//
    77//      This program is free software: you can redistribute it and/or modify
     
    2424include_once("$base_path/config_cli.php");
    2525
     26require_once($CONFIG['cli']['location']."/core.cli.inc.php");
     27
    2628$tim=time();
    2729$i_time=time()-60*60*24*$CONFIG['resp_clear']['info_time'];
     
    2931
    3032$info_mail='';
    31 
    32 $mail->CharSet  = "UTF-8";
    33 $mail->FromName = $CONFIG['site']['name'].' - Site Service System'; 
    3433
    3534if($CONFIG['resp_clear']['info_time'])
     
    4746        {
    4847                $info_mail.='id:'.str_pad($nxt[0], 6, ' ', STR_PAD_LEFT).' - '.$nxt[1]." (ответственный - $nxt[3] (id:$nxt[2])\n";
     48                if(!isset($resp_info[$nxt[2]])) $resp_info[$nxt[2]]='';
    4949                $resp_info[$nxt[2]].='id:'.str_pad($nxt[0], 6, ' ', STR_PAD_LEFT).' - '.$nxt[1]."\n";
    5050                $resp_mail[$nxt[2]]=$nxt[4];
     
    5353        foreach($resp_info as $id => $resp)
    5454        {
    55                 $mail->ClearAddress();
    56                 $mail->AddAddress($resp_mail[$id], $resp_mail[$id]); 
    57                 $mail->Subject=$CONFIG['site']['name']." - Info for responsible manager";
    58                
    59                 $mail->Body="По следующим агентам, для которых Вы назначены ответственным менеджером, , не было движения более {$CONFIG['resp_clear']['info_time']} дней:\n\n".$resp."\nЕсли Вы не примите меры, то через некоторое время Вы перестанете быть ответственным менеджером этого агента!\n\nВы получили это письмо, так как являетесь ответственным менеджером.\nЭто письмо сгенерированно автоматически системой оповещения сайта {$CONFIG['site']['name']}.\nОтвечать на него не нужно.";
    60                 if($mail->Send())       echo "\nПочта отправлена на $resp_mail[$id]!";
    61                 else                    echo"\nошибка почты на $resp_mail[$id]! ".$mail->ErrorInfo;
     55                $mail_text="По следующим агентам, для которых Вы назначены ответственным менеджером, , не было движения более {$CONFIG['resp_clear']['info_time']} дней:\n\n".$resp."\nЕсли Вы не примите меры, то через некоторое время Вы перестанете быть ответственным менеджером этого агента!\n\nВы получили это письмо, так как являетесь ответственным менеджером.\nЭто письмо сгенерированно автоматически системой оповещения сайта {$CONFIG['site']['name']}.\nОтвечать на него не нужно.";
     56                               
     57                try
     58                {       
     59                        mailto($resp_mail[$id], $CONFIG['site']['name']." - Информация для ответственного сотрудника", $mail_text);
     60                        echo "Почта отправлена!";
     61                }
     62                catch(Exception $e)
     63                {
     64                        echo"Ошибка отправки почты!".$e->getMessage();
     65                }
    6266        }
    6367}
     68
     69try
     70{
    6471
    6572if($CONFIG['resp_clear']['clear_time'])
     
    7986}
    8087
     88}
     89catch(Exception $e)
     90{
     91        $info_mail.=$e->getMessage();
     92        echo $e->getMessage();
     93}
    8194
    8295if($info_mail)
    8396{
    84         $mail->ClearAddress();
    85         $mail->AddAddress($CONFIG['resp_clear']['info_mail'], $CONFIG['resp_clear']['info_mail']); 
    86         $mail->Subject=$CONFIG['site']['name']." - Info about non-active client";
     97        $mail_text=$info_mail."\n\nВы получили это письмо, так как ваш адрес указан в настройках сайта.\nЭто письмо сгенерированно автоматически системой оповещения сайта {$CONFIG['site']['name']}.\nОтвечать на него не нужно.";
    8798       
    88         $mail->Body=$info_mail."\n\nВы получили это письмо, так как ваш адрес указан в настройках сайта.\nЭто письмо сгенерированно автоматически системой оповещения сайта {$CONFIG['site']['name']}.\nОтвечать на него не нужно.";
    89         if($mail->Send())       echo "\nПочта отправлена на {$CONFIG['resp_clear']['info_mail']}!";
    90         else                    echo"\nошибка почты на {$CONFIG['resp_clear']['info_mail']}! ".$mail->ErrorInfo;
     99        try
     100        {       
     101                mailto($CONFIG['resp_clear']['info_mail'], $CONFIG['site']['name']." - Информация о неактивных клиентах", $mail_text);
     102                echo "Почта отправлена!";
     103        }
     104        catch(Exception $e)
     105        {
     106                echo"Ошибка отправки почты!".$e->getMessage();
     107        }
    91108}
    92109
  • common/core.common.php

    rc0dde68 r85095b7  
    2020/// Файл содержит код, используемый как web, так и cli скриптами
    2121
     22function mailto($email, $subject, $msg, $from="")
     23{
     24        global $CONFIG;
     25        require_once($CONFIG['location'].'/common/email_message.php');
     26       
     27        $email_message=new email_message_class();
     28        $email_message->default_charset="UTF-8";
     29        $email_message->SetEncodedEmailHeader("To", $email, $email);
     30        $email_message->SetEncodedHeader("Subject", $subject);
     31        if($from)       $email_message->SetEncodedEmailHeader("From", $from, $from);
     32        else            $email_message->SetEncodedEmailHeader("From", $CONFIG['site']['admin_email'], "Почтовый робот {$CONFIG['site']['name']}");
     33        $email_message->SetHeader("Sender",$CONFIG['site']['admin_email']);
     34        $email_message->AddQuotedPrintableTextPart($msg);
     35        $error=$email_message->Send();
     36       
     37        if(strcmp($error,""))   throw new Exception($error);
     38        else                    return 0;
     39}
    2240
    23 class AccessException extends Exception
    24 {
    25         function __construct($text='')
    26         {
    27                 parent::__construct($text);     
    28         }
    29 };
    3041
    3142
  • config_all.sample.php

    rc0dde68 r85095b7  
    55$CONFIG['site']['doc_adm_email']= '';
    66$CONFIG['site']['doc_adm_jid']  = '';
    7 $CONFIG['site']['name']         = 'multimag';
    8 $CONFIG['site']['display_name'] = 'Magazine';
     7$CONFIG['site']['name']         = 'example.com';
     8$CONFIG['site']['display_name'] = 'Интернет-магазин';
    99$CONFIG['site']['default_firm'] = 1;                            // Организация по умолчанию для работы сайта
    1010$CONFIG['location']             = '/usr/share/multimag';
     
    2828$CONFIG['ymarket']['local_delivery_cost']       = 150;
    2929
    30 require_once($CONFIG['location']."/common/class.phpmailer.php");
    3130require_once($CONFIG['location'].'/common/XMPPHP/XMPP.php');
    32 
    33 
    34 $mail = new PHPMailer(); 
    35 
    36 $mail->Sender   = $CONFIG['site']['admin_email']; 
    37 $mail->From     = $CONFIG['site']['admin_email']; 
    38 $mail->FromName = $CONFIG['site']['display_name']; 
    39 $mail->Mailer   = "mail"; 
    40 $mail->CharSet  = "UTF-8";
    4131
    4232$xmppclient = new XMPPHP_XMPP( $CONFIG['xmpp']['host'], $CONFIG['xmpp']['port'], $CONFIG['xmpp']['login'], $CONFIG['xmpp']['pass'], 'xmpphp', '', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
  • web/core.php

    rc0dde68 r85095b7  
    22//      MultiMag v0.1 - Complex sales system
    33//
    4 //      Copyright (C) 2005-2010, BlackLight, TND Team, http://tndproject.org
     4//      Copyright (C) 2005-2012, BlackLight, TND Team, http://tndproject.org
    55//
    66//      This program is free software: you can redistribute it and/or modify
     
    1717//      along with this program.  If not, see <http://www.gnu.org/licenses/>.
    1818//
    19 define("MULTIMAG_REV", "272");
    20 define("MULTIMAG_VERSION", "0.0.1r".MULTIMAG_REV);
     19define("MULTIMAG_REV", "298");
     20define("MULTIMAG_VERSION", "0.1r".MULTIMAG_REV);
    2121header("X-Powered-By: MultiMag ".MULTIMAG_VERSION);
    2222
     
    281281}
    282282
    283 function mailto($email,$tema,$msg,$from="")
    284 {
    285         global $mail;
    286         $mail->Body = $msg;
    287         $mail->ClearAddress();
    288         $mail->AddAddress($email, $email ); 
    289         $mail->Subject=$tema;
    290         if($from) $mail->From = $from; 
    291         return $mail->Send();
    292 }
    293283
    294284function sendAdmMessage($text,$subject='')
     
    509499
    510500
     501class AccessException extends Exception
     502{
     503        function __construct($text='')
     504        {
     505                parent::__construct($text);     
     506        }
     507};
    511508
    512509class MysqlException extends Exception
  • web/doc_otchet.php

    rc0dde68 r85095b7  
    3434        'doc_otchet.php?mode=sverka_op' => 'Акт сверки (оперативный)',
    3535        'doc_otchet.php?mode=agent_otchet' => 'Отчет по агенту',
    36         'doc_otchet.php?mode=komplekt' => 'Отчет по комплектующим',
    3736        'doc_otchet.php?mode=proplaty' => 'Отчет по проплатам',
    3837        'doc_otchet.php?mode=prod' => 'Отчёт по продажам',
     
    4948        <a href='doc_otchet.php?mode=sverka'><div>Акт сверки</div></a>
    5049        <a href='doc_otchet.php?mode=agent_otchet'><div>Отчет по агенту</div></a>
    51         <a href='doc_otchet.php?mode=komplekt'><div>Отчет по комплектующим</div></a>
    5250        <a href='doc_otchet.php?mode=prod'><div>Отчёт по продажам</div></a>
    5351        <a href='doc_otchet.php?mode=proplaty'><div>Отчет по проплатам</div></a>
     
    185183        $tmpl->ajax=1;
    186184        $tmpl->AddText(otch_divs());
    187 }
    188 else if($mode=='komplekt')
    189 {
    190         $opt=rcv('opt');
    191         if($opt=='')
    192         {
    193                 $tmpl->SetText("<h1>Отчёт по комплектующим (с зарплатой)</h1>
    194                 <form action='' method='post'>
    195                 <input type='hidden' name='mode' value='komplekt'>
    196                 <input type='hidden' name='opt' value='make'>
    197                 Группа товаров:<br>
    198                 <select name='group'>
    199                 <option value='0' selected>-- не выбрана</option>");
    200                 $res=mysql_query("SELECT `id`, `name` FROM `doc_group` ORDER BY `name`");
    201                 while($nxt=mysql_fetch_row($res))
    202                 {
    203                         $tmpl->AddText("<option value='$nxt[0]'>$nxt[1] ($nxt[0])</option>");
    204                 }
    205                 $tmpl->AddText("</select>
    206                 <button type='submit'>Создать отчет</button>
    207                 </form>");
    208         }
    209         else
    210         {
    211                 $tmpl->LoadTemplate('print');
    212                 $group=rcv('group');
    213                 settype($group,'int');
    214                 $date=date('Y-m-d');
    215                 $sel=$group?"AND `group`='$group'":'';
    216                 // Получение id свойства зарплаты
    217                 $res=mysql_query("SELECT `id` FROM `doc_base_params` WHERE `param`='ZP'");
    218                 if(mysql_errno())       throw new MysqlException("Не удалось получить выборку доп.информации");
    219                 if(mysql_num_rows($res)==0)     throw new Exception("Данные о зарплате за сборку в базе не найдены. Необходим дополнительный параметр 'ZP'");
    220                 $zp_id=mysql_result($res,0,0);
    221                
    222                 $res=mysql_query("SELECT `doc_base`.`id`, `doc_base`.`vc`, `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_base_values`.`value` AS `zp`
    223                 FROM `doc_base`
    224                 LEFT JOIN `doc_group` ON `doc_group`.`id`=`doc_base`.`group`
    225                 LEFT JOIN `doc_base_values` ON `doc_base_values`.`id`=`doc_base`.`id` AND `doc_base_values`.`param_id`='$zp_id'
    226                 WHERE 1 $sel
    227                 ORDER BY `doc_base`.`name`");
    228                 if(mysql_errno())       throw new MysqlException("Не удалось получить выборку наименований");
    229                 $tmpl->AddText("<h1>Отчёт по комплектующим с зарплатой для группы $group на $date</h1><table width='100%'>
    230                 <tr><th rowspan='2'>ID<th rowspan='2'>Код<br>произв.<th rowspan='2'>Наименование<th rowspan='2'>Зар. плата<th colspan='4'>Комплектующие<th rowspan='2'>Стоимость сборки<th rowspan='2'>Стоимость с зарплатой
    231                 <tr><th>Наименование<th>Цена<th>Количество<th>Стоимость");
    232                 $zp_sum=$kompl_sum=$all_sum=0;
    233                 while($nxt=mysql_fetch_assoc($res))
    234                 {
    235                         settype($nxt['zp'], 'double');
    236                         $cnt=$sum=0;
    237                         $kompl_data1=$kompl_data='';
    238                         $rs=mysql_query("SELECT `doc_base_kompl`.`kompl_id` AS `id`, `doc_base`.`name`, `doc_base`.`cost`, `doc_base_kompl`.`cnt`
    239                         FROM `doc_base_kompl`
    240                         LEFT JOIN `doc_base` ON `doc_base`.`id`=`doc_base_kompl`.`kompl_id`
    241                         WHERE `doc_base_kompl`.`pos_id`='{$nxt['id']}'");
    242                         echo mysql_error();
    243                         if(mysql_errno())       throw new MysqlException("Не удалось получить выборку комплектующих");
    244                         while($nx=mysql_fetch_row($rs))
    245                         {
    246                                 $cnt++;
    247                                 $cost=sprintf("%0.2f",GetInCost($nx[0]));
    248                                 $cc=$cost*$nx[3];
    249                                 $sum+=$cc;
    250                                 if(!$kompl_data1)       $kompl_data1="<td>$nx[1]<td>$cost<td>$nx[3]<td>$cc";
    251                                 else                    $kompl_data.="<tr><td>$nx[1]<td>$cost<td>$nx[3]<td>$cc";
    252                         }
    253                         $span=($cnt>1)?"rowspan='$cnt'":'';
    254                         if(!$kompl_data1)       $kompl_data1="<td><td><td><td>";
    255                         $zsum=$nxt['zp']+$sum;
    256                         $tmpl->AddText("<tr><td $span>{$nxt['id']}<td $span>{$nxt['vc']}<td $span>{$nxt['printname']} {$nxt['name']} / {$nxt['proizv']}<td $span>{$nxt['zp']} $kompl_data1<td $span>$sum<td $span>$zsum
    257                         $kompl_data");
    258                         $zp_sum+=$nxt['zp'];
    259                         $kompl_sum+=$sum;
    260                         $all_sum+=$zsum;
    261                 }
    262                 $tmpl->AddText("
    263                 <tr><td colspan='3'><b>Итого:</b><td>$zp_sum<td colspan='4'><td>$kompl_sum<td>$all_sum
    264                 </table>");
    265                
    266         }
    267185}
    268186else if($mode=='fin_otchet')
  • web/doc_reports.php

    rc0dde68 r85095b7  
    3737                        doc_menu();     
    3838                        $tmpl->SetTitle("Отчёты");
    39                         $tmpl->AddText("<h1>Отчёты</h1>");
     39                        $tmpl->AddText("<h1>Отчёты</h1>
     40                        <p>Внимание! Отчёты создают высокую нагрузку на сервер, поэтому не рекомендуеся генерировать отчёты во время интенсивной работы с базой данных, а так же не рекомендуется частое использование генератора отчётов по этой же причине!</p>");
    4041                        $tmpl->AddText("<ul>");
    4142                        if (is_dir($dir))
  • web/include/doc.kompredl.php

    rc0dde68 r85095b7  
    201201                else
    202202                {
    203                         global $mail;
    204203                        $comm=rcv('comm');
    205                         $sender_name=$_SESSION['name'];
    206                        
    207                         $res=mysql_query("SELECT `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data[8]}'");
    208                         $manager_name=@mysql_result($res,0,0); 
    209                         $manager_tel=@mysql_result($res,0,1);
    210                         $manager_email=@mysql_result($res,0,2);
    211                        
    212                         if(!$manager_email)
    213                         {
    214                                 $mail->Body = "Доброго времени суток!\nВо вложении находится запрошенное Вами коммерческое предложение от {$CONFIG['site']['name']}\n\n$comm\n\nСообщение сгенерировано автоматически, отвечать на него не нужно! Для переписки используйте адрес, указанный на сайте http://{$CONFIG['site']['name']}!";
    215                         }
    216                         else
    217                         {
    218                                 $mail->Body = "Доброго времени суток!\nВо вложении находится запрошенное Вами коммерческое предложение от {$CONFIG['site']['name']}\n\n$comm\n\nИсполнительный менеджер $manager_name\nКонтактный телефон: $manager_tel\nЭлектронная почта (e-mail): $manager_email\nОтправитель: $sender_name";
    219                                 $mail->Sender   = $manager_email; 
    220                                 $mail->From     = $manager_email; 
    221                                 //$mail->FromName = "{$mail->FromName} ({$manager_name})";
    222                         }
    223 
    224                         $mail->AddAddress($email, $email ); 
    225                         $mail->Subject="Коммерческое предложение от {$CONFIG['site']['name']}";
    226                        
    227                         $mail->AddStringAttachment($this->KomPredlPDF(1), "buissness_offer.pdf"); 
    228                         if($mail->Send())
    229                                 $tmpl->msg("Сообщение отправлено!","ok");
    230                         else
    231                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
     204                        doc_menu();
     205                        $this->SendDocEMail($email, $comm, 'Коммерческое предложение', $this->KomPredlPDF(1), "buissness_offer.pdf");
     206                        $tmpl->msg("Сообщение отправлено!","ok");
    232207                }       
    233208        }
     
    239214                global $tmpl;
    240215                global $uid;
    241                 global $mail;
    242216                global $CONFIG;
    243217                $tmpl->ajax=0;
     
    293267                else
    294268                {
    295 
    296                         $msg="Доброго времени суток!\n Просим Вас рассмотреть возможность закупки следующей продукции:\n\n";
     269                        global $CONFIG;
     270                        require_once($CONFIG['location'].'/common/email_message.php');
     271                        $email_message=new email_message_class();
     272                        $email_message->SetBulkMail(1);
     273                        $email_message->default_charset="UTF-8";
     274                        $email_message->SetEncodedHeader("Subject", "Коммерческое предложение от {$CONFIG['site']['name']}");
     275                        $text_attachment=array(
     276                                "Data"=>$this->KomPredlPDF(1),
     277                                "Name"=>"buissness_offer.pdf",
     278                                "Content-Type"=>"automatic/name",
     279                                "Disposition"=>"attachment"
     280                        );
     281                        $email_message->AddFilePart($text_attachment);
     282                        $email_message->SetEncodedEmailHeader("From", $CONFIG['site']['admin_email'], "Почтовый робот {$CONFIG['site']['name']}");
     283                        $email_message->SetHeader("Sender",$CONFIG['site']['admin_email']);
     284                        $email_message->cache_body=0;
     285                        // Заглушка для тела письма
     286                        $email_message->CreateQuotedPrintableTextPart("","",$text_part);
     287                        $email_message->AddPart($text_part);
    297288                       
     289                        // Подготовка тела письма
     290                        $msg="Просим Вас рассмотреть возможность закупки следующей продукции:\n\n";                     
    298291                        $res=mysql_query("SELECT `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_base`.`cost`
    299292                        FROM `doc_list_pos`
     
    305298                                $msg.="$nxt[0] $nxt[1] ($nxt[2]) - цена $nxt[3] руб.\n";
    306299                        }
    307                         $msg.="\n\nВо вложении находится печатная версия этого предложения.\nЗаказать данную продукцию вы можете на нашем сайте http://{$CONFIG['site']['name']}. Так же с нашего сайта можно загрузить полный правйс-лист, или воспользоваться интернет-витриной. При заказе через сайт предоставляются скидки! Если для Вас по каким-либо причинам заказ через сайт не возможен, можно воспользоваться альтернативными способами связи:\nТелефоны: ".$this->firm_vars['firm_telefon']."\nЭлектронная почта: {$CONFIG['site']['doc_adm_email']}\nJabber(XMPP): {$CONFIG['site']['doc_adm_jid']}\n";
    308                         $msg.="\n-----------------------------------------------------\nВы получили это письмо потому что подписаны на рассылку сайта http://{$CONFIG['site']['name']}, либо являетесь клиентом {$this->firm_vars['firm_name']}, не отказавшимся от рассылки.\nОтказаться от рассылки можно, перейдя по ссылке http://{$CONFIG['site']['name']}/login.php?mode=unsubscribe&email=";
    309                        
    310                         global $mail;
    311                         //$mail->ContentType='text/plain';
    312                         $mail->Subject='Коммерческое предложение от '.$CONFIG['site']['name'];
    313                         $mail->AddStringAttachment($this->KomPredlPDF(1), "buissness_offer.pdf"); 
    314                         $mail->ClearAddress();
     300                        $msg.="\n\nВо вложении находится печатная версия этого предложения.\nЗаказать данную продукцию вы можете на нашем сайте http://{$CONFIG['site']['name']}.\nТак же с нашего сайта можно загрузить полный прайс-лист, или воспользоваться интернет-витриной.\nПри заказе через сайт предоставляются скидки!\nЕсли для Вас по каким-либо причинам заказ через сайт не возможен, можно воспользоваться альтернативными способами связи:\nТелефоны: ".$this->firm_vars['firm_telefon']."\nЭлектронная почта: {$CONFIG['site']['doc_adm_email']}\nJabber(XMPP): {$CONFIG['site']['doc_adm_jid']}\n";
     301                        $msg.="\n-----------------------------------------------------\nВы получили это письмо потому что подписаны на рассылку сайта http://{$CONFIG['site']['name']},\nлибо являетесь клиентом {$this->firm_vars['firm_name']}, не отказавшимся от рассылки.\nОтказаться от рассылки можно, перейдя по ссылке http://{$CONFIG['site']['name']}/login.php?mode=unsubscribe&email=";
    315302                       
    316303                        $email=@$_POST['email'];
    317304                        foreach($email  as      $line)
    318305                        {
    319                                         $mail->Body = $msg.$line;
    320                                         $mail->AddAddress($line, $line); 
    321                                         if($mail->Send())
    322                                                 $tmpl->msg("Сообщение для *$line* отправлено!","ok");
     306                                $res=mysql_query("SELECT `name`, `fullname` FROM `doc_agent` WHERE `email`='$line'");
     307                                $recipient=@mysql_fetch_assoc($res);                   
     308                                if(!$recipient)
     309                                {
     310                                        $res=mysql_query("SELECT `name`, `rname` AS `fullname` FROM `users` WHERE `email`='$line'");
     311                                        $recipient=@mysql_fetch_assoc($res);
     312                                }
     313                                if($recipient)
     314                                {
     315                                        if($recipient['fullname'])
     316                                        {
     317                                                $email_message->SetEncodedEmailHeader("To", $line, $recipient['fullname']);
     318                                                $body="Здравствуйте, {$recipient['fullname']}!\n".$msg."$line";
     319                                        }
    323320                                        else
    324                                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
    325                                         $mail->ClearAddress();
     321                                        {
     322                                                $email_message->SetEncodedEmailHeader("To", $line, $recipient['name']);
     323                                                $body="Здравствуйте, {$recipient['name']}!\n".$msg."$line";
     324                                        }
     325                                }
     326                                else
     327                                {
     328                                        $email_message->SetEncodedEmailHeader("To", $line, $line);
     329                                        $body="Здравствуйте!\n".$msg."$line";
     330                                }
     331                                $email_message->CreateQuotedPrintableTextPart($body,"",$recipient_text_part);
     332                                $email_message->ReplacePart($text_part,$recipient_text_part);
     333                               
     334                                $error=$email_message->Send();
     335                                if(strlen($error))      throw new Exception($error);
    326336                        }
    327337                       
     338                        $email_message->SetBulkMail(0);
     339                        $tmpl->msg("Рассылка выполнена успешно!","ok");
    328340                }
    329341        }
     
    338350                $dt=date("d.m.Y",$this->doc_data[5]);
    339351               
    340                 if($coeff==0) $coeff=1;
     352                if(@$coeff==0) $coeff=1;
    341353                if(!$to_str) $tmpl->ajax=1;
    342354               
     
    447459                $str='Цена';
    448460                $str = iconv('UTF-8', 'windows-1251', $str);   
    449                 $pdf->Cell($t_width[3],5,$str,1,0,'C',0);
     461                $pdf->Cell($t_width[2],5,$str,1,0,'C',0);
    450462                $pdf->Ln();
    451463               
  • web/include/doc.nulltype.php

    rc0dde68 r85095b7  
    788788        }
    789789       
     790        function SendDocEMail($email, $comment, $docname, $data, $filename, $body='')
     791        {
     792                global $CONFIG;
     793                require_once($CONFIG['location'].'/common/email_message.php');
     794               
     795                $res=mysql_query("SELECT `name`, `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data['user']}'");
     796                $doc_autor=@mysql_fetch_assoc($res);
     797               
     798                $res=mysql_query("SELECT `name`, `fullname`, `email` FROM `doc_agent` WHERE `id`='{$this->doc_data['agent']}'");
     799                $agent=@mysql_fetch_assoc($res);                       
     800               
     801                $email_message=new email_message_class();
     802                $email_message->default_charset="UTF-8";
     803                if($agent['fullname'])  $email_message->SetEncodedEmailHeader("To", $email, $agent['fullname']);
     804                else if($agent['name']) $email_message->SetEncodedEmailHeader("To", $email, $agent['name']);
     805                else                    $email_message->SetEncodedEmailHeader("To", $email, $email);
     806
     807                $email_message->SetEncodedHeader("Subject", "$docname от {$CONFIG['site']['name']}");
     808               
     809                if(!@$doc_autor['email'])
     810                {
     811                        $email_message->SetEncodedEmailHeader("From", $CONFIG['site']['admin_email'], "Почтовый робот {$CONFIG['site']['name']}");
     812                        $email_message->SetHeader("Sender",$CONFIG['site']['admin_email']);
     813                        $text_message = "Здравствуйте, {$agent['fullname']}!\nВо вложении находится заказанный Вами документ ($docname) от {$CONFIG['site']['name']}\n\n$comment\n\nСообщение сгенерировано автоматически, отвечать на него не нужно!\nДля переписки используйте адрес, указанный в контактной информации на сайте http://{$CONFIG['site']['name']}!";
     814                }
     815                else
     816                {
     817                        $email_message->SetEncodedEmailHeader("From", $doc_autor['email'], $doc_autor['rname']);
     818                        $email_message->SetHeader("Sender", $doc_autor['email']);
     819                        $text_message = "Здравствуйте, {$agent['fullname']}!\nВо вложении находится заказанный Вами документ ($docname) от {$CONFIG['site']['name']}\n\n$comment\n\nОтветственный сотрудник: {$doc_autor['name']}\nКонтактный телефон: {$doc_autor['tel']}\nЭлектронная почта (e-mail): {$doc_autor['email']}";
     820                        if($_SESSION['name']!=$doc_autor['name'])       $text_message.="\nОтправитель: {$_SESSION['name']}";
     821                }
     822                if($body)       $email_message->AddQuotedPrintableTextPart($body);
     823                else            $email_message->AddQuotedPrintableTextPart($text_message);
     824               
     825                $text_attachment=array(
     826                        "Data"=>$data,
     827                        "Name"=>$filename,
     828                        "Content-Type"=>"automatic/name",
     829                        "Disposition"=>"attachment"
     830                );
     831                $email_message->AddFilePart($text_attachment);
     832               
     833                $error=$email_message->Send();
     834               
     835                if(strcmp($error,""))   throw new Exception($error);
     836                else                    return 0;
     837        }
     838       
    790839        // Служебные опции
    791840        function _Service($opt, $pos)
  • web/include/doc.predlojenie.php

    rc0dde68 r85095b7  
    309309                else
    310310                {
    311                         global $mail;
    312                         $mail->Body = "Доброго времени суток!
    313                         Прошу рассмотреть возможность поставки Вашей продукции для {$CONFIG['site']['name']}. Подробная информация во вложении."; 
    314                         //$mail->ContentType='text/plain';
    315                         $mail->AddAddress($email, $email ); 
    316                         $mail->Subject='Order from '.$CONFIG['site']['name'];
    317                        
    318                         $mail->AddStringAttachment($this->PrintPDF($doc, 1), "zakaz.pdf"); 
    319                         if($mail->Send())
    320                                 $tmpl->msg("Сообщение отправлено!","ok");
    321                         else
    322                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
     311                        $comm=rcv('comm');
     312                        doc_menu();
     313                        $this->SendDocEMail($email, $comm, 'Заявка на поставку', $this->PrintPDF($doc, 1), "order.pdf", "Здравствуйте!\nПрошу рассмотреть возможность поставки Вашей продукции для {$CONFIG['site']['name']}.\nПодробная информация во вложении.");
     314                        $tmpl->msg("Сообщение отправлено!","ok");
    323315    }
    324316               
     
    339331               
    340332                $dt=date("d.m.Y",$this->doc_data[5]);
    341                
    342                 if($coeff==0) $coeff=1;
     333
    343334                if(!$to_str) $tmpl->ajax=1;
    344335               
  • web/include/doc.realiz_op.php

    rc0dde68 r85095b7  
    700700                else
    701701                {
    702                         global $mail;
    703702                        $comm=rcv('comm');
    704                         $sender_name=$_SESSION['name'];
    705                        
    706                         $res=mysql_query("SELECT `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data[8]}'");
    707                         $manager_name=@mysql_result($res,0,0); 
    708                         $manager_tel=@mysql_result($res,0,1);
    709                         $manager_email=@mysql_result($res,0,2);
    710                        
    711                         if(!$manager_email)
    712                         {
    713                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанная Вами счёт-фактура от {$CONFIG['site']['name']}\n\n$comm\n\nСообщение сгенерировано автоматически, отвечать на него не нужно!";
    714                         }
    715                         else
    716                         {
    717                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанная Вами счёт-фактура от {$CONFIG['site']['name']}\n\n$comm\n\nИсполнительный менеджер $manager_name\nКонтактный телефон: $manager_tel\nЭлектронная почта (e-mail): $manager_email\nОтправитель: $sender_name";
    718                                 $mail->Sender   = $manager_email; 
    719                                 $mail->From     = $manager_email; 
    720                         }
    721 
    722                         $mail->AddAddress($email, $email ); 
    723                         $mail->Subject="Счёт-фактура от {$CONFIG['site']['name']}";
    724                        
    725                         $mail->AddStringAttachment($this->SfakPDF($doc, 1), "schet_fak.pdf"); 
    726                         if($mail->Send())
    727                                 $tmpl->msg("Сообщение отправлено!","ok");
    728                         else
    729                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
     703                        doc_menu();
     704                        $this->SendDocEMail($email, $comm, 'Счёт-фактура', $this->SfakPDF($doc, 1), "schet-fakt.pdf");
     705                        $tmpl->msg("Сообщение отправлено!","ok");
    730706                }       
    731707        }
     
    741717        global $dop_data;
    742718        global $dv;
    743        
    744         if($coeff==0) $coeff=1;
     719
    745720        if(!$to_str) $tmpl->ajax=1;
    746721       
     
    749724        $res=mysql_query("SELECT `doc_agent`.`gruzopol`, `doc_agent`.`fullname`, `doc_agent`.`adres`,  `doc_agent`.`tel`, `doc_agent`.`inn` FROM `doc_agent` WHERE `doc_agent`.`id`='$doc_data[2]'      ");
    750725
    751         $nx=@mysql_fetch_row($res);     
     726        $nx=@mysql_fetch_row($res);
     727        $pp='';
    752728        if($doc_data[13])
    753729        {
     
    834810        }
    835811       
    836         $res=mysql_query("SELECT `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_list_pos`.`cnt`, `doc_list_pos`.`cost`, `doc_list_pos`.`sn`, `doc_base_dop`.`strana`  FROM `doc_list_pos`
     812        $res=mysql_query("SELECT `doc_group`.`printname`, `doc_base`.`name`, `doc_base`.`proizv`, `doc_list_pos`.`cnt`, `doc_list_pos`.`cost`, `doc_list_pos`.`cnt`, `doc_base_dop`.`strana`  FROM `doc_list_pos`
    837813        LEFT JOIN `doc_base` ON `doc_base`.`id`=`doc_list_pos`.`tovar`
    838814        LEFT JOIN `doc_base_dop` ON `doc_base_dop`.`id`=`doc_list_pos`.`tovar`
    839815        LEFT JOIN `doc_group` ON `doc_group`.`id`=`doc_base`.`group`
    840816        WHERE `doc_list_pos`.`doc`='$doc'");
    841        
     817        if(mysql_errno())       throw new MysqlException("Ошибка выброки списка наименований документа");
    842818        $pdf->SetLineWidth(0.2);
    843819        $pdf->SetY($y+16);
  • web/include/doc.realizaciya.php

    rc0dde68 r85095b7  
    11771177                else
    11781178                {
    1179                         global $mail;
    11801179                        $comm=rcv('comm');
    1181                         $sender_name=$_SESSION['name'];
    1182                        
    1183                         $res=mysql_query("SELECT `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data[8]}'");
    1184                         $manager_name=@mysql_result($res,0,0); 
    1185                         $manager_tel=@mysql_result($res,0,1);
    1186                         $manager_email=@mysql_result($res,0,2);
    1187                        
    1188                         if(!$manager_email)
    1189                         {
    1190                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанная Вами счёт-фактура от {$CONFIG['site']['name']}\n\n$comm\n\nСообщение сгенерировано автоматически, отвечать на него не нужно!";
    1191                         }
    1192                         else
    1193                         {
    1194                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанная Вами счёт-фактура от {$CONFIG['site']['name']}\n\n$comm\n\nИсполнительный менеджер $manager_name\nКонтактный телефон: $manager_tel\nЭлектронная почта (e-mail): $manager_email\nОтправитель: $sender_name";
    1195                                 $mail->Sender   = $manager_email; 
    1196                                 $mail->From     = $manager_email; 
    1197                                 //$mail->FromName = "{$mail->FromName} ({$manager_name})";
    1198                         }
    1199 
    1200                         $mail->AddAddress($email, $email ); 
    1201                         $mail->Subject="Счёт-фактура от {$CONFIG['site']['name']}";
    1202                        
    1203                         $mail->AddStringAttachment($this->SfakPDF($doc, 1), "schet_fak.pdf"); 
    1204                         if($mail->Send())
    1205                                 $tmpl->msg("Сообщение отправлено!","ok");
    1206                         else
    1207                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
     1180                        doc_menu();
     1181                        $this->SendDocEMail($email, $comm, 'Счёт-фактура', $this->SfakPDF($doc, 1), "schet-fakt.pdf");
     1182                        $tmpl->msg("Сообщение отправлено!","ok");
    12081183                }       
    12091184        }
  • web/include/doc.v_puti.php

    rc0dde68 r85095b7  
    142142                        $tmpl->ajax=1;
    143143                        $tmpl->AddText("
    144                         <div onclick=\"window.location='/doc.php?mode=print&amp;doc={$this->doc}&amp;opt=zayavka_pdf'\">Заявка PDF</div>
    145                         <div onclick=\"ShowPopupWin('/doc.php?mode=print&amp;doc=$doc&amp;opt=zayavka_email'); return false;\">Заявка PDF по e-mail</div>");
     144                        <div onclick=\"window.location='/doc.php?mode=print&amp;doc={$this->doc}&amp;opt=zayavka_pdf'\">Заявка PDF</div>");
    146145                }
    147146                else if($opt=='zayavka_pdf')
    148147                        $this->PrintPDF($doc);
    149                 else if($opt=='zayavka_email')
    150                         $this->SendEmail($doc);
    151148        }
    152149        // Формирование другого документа на основании текущего
     
    286283        }
    287284
    288         function SendEMail($doc, $email='')
    289         {
    290                 global $tmpl;
    291                 global $CONFIG;
    292                 if(!$email)
    293                         $email=rcv('email');
    294                
    295                 if($email=='')
    296                 {
    297                         $tmpl->ajax=1;
    298                         get_docdata($doc);
    299                         global $doc_data;
    300                         $res=mysql_query("SELECT `email` FROM `doc_agent` WHERE `id`='$doc_data[2]'");
    301                         $email=mysql_result($res,0,0);
    302                         $tmpl->AddText("<form action=''>
    303                         <input type=hidden name=mode value='print'>
    304                         <input type=hidden name=doc value='$doc'>
    305                         <input type=hidden name=opt value='zayavka_email'>
    306                         email:<input type=text name=email value='$email'>
    307                         <input type=submit value='&gt;&gt;'>
    308                         </form>");     
    309                 }
    310                 else
    311                 {
    312                         global $mail;
    313                         $mail->Body = "Доброго времени суток!
    314                         Прошу рассмотреть возможность поставки Вашей продукции для {$CONFIG['site']['name']}. Подробная информация во вложении."; 
    315                         //$mail->ContentType='text/plain';
    316                         $mail->AddAddress($email, $email ); 
    317                         $mail->Subject='Order from '.$CONFIG['site']['name'];
    318                        
    319                         $mail->AddStringAttachment($this->PrintPDF($doc, 1), "zakaz.pdf"); 
    320                         if($mail->Send())
    321                                 $tmpl->msg("Сообщение отправлено!","ok");
    322                         else
    323                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
    324     }
    325                
    326         }
    327        
    328        
    329285        function PrintPDF($doc, $to_str=0)
    330286        {
  • web/include/doc.zayavka.php

    rc0dde68 r85095b7  
    132132                        $this->PrintPDF($doc);
    133133                else if($opt=='schet_email')
    134                         $this->SendEmail($doc);
     134                        $this->SendEmail();
    135135                else if($opt=='komplekt')
    136136                        $this->PrintKomplekt($doc);
     
    443443                        if($CONFIG['site']['doc_shtamp'])
    444444                                $tmpl->AddText("<img src='{$CONFIG['site']['doc_shtamp']}' alt='Место для печати'>");
    445                         $tmpl->AddText("<p align=right>Масса товара: <b>$summass</b> кг.<br></p>");
     445                        $tmpl->AddText("<p align='right'>Масса товара: <b>$summass</b> кг.<br></p>");
    446446                }               
    447447        }
    448448       
    449         function SendEMail($doc, $email='')
     449        function SendEMail()
    450450        {
    451451                global $tmpl;
    452                 global $mail;
    453452                global $CONFIG;
    454                 if(!$email)
    455                         $email=rcv('email');
     453                $email=rcv('email');
    456454               
    457455                if($email=='')
     
    460458                        $res=mysql_query("SELECT `email` FROM `doc_agent` WHERE `id`='{$this->doc_data[2]}'");
    461459                        $email=mysql_result($res,0,0);
    462                         $tmpl->AddText("<form action=''>
    463                         <input type=hidden name=mode value='print'>
    464                         <input type=hidden name=doc value='$doc'>
    465                         <input type=hidden name=opt value='schet_email'>
    466                         email:<input type=text name=email value='$email'><br>
     460                        $tmpl->AddText("<form action='' method='post'>
     461                        <input type=hidden name='mode' value='print'>
     462                        <input type=hidden name='doc' value='{$this->doc}'>
     463                        <input type=hidden name='opt' value='schet_email'>
     464                        email:<input type='text' name='email' value='$email'><br>
    467465                        Коментарий:<br>
    468466                        <textarea name='comm'></textarea><br>
    469                         <input type=submit value='&gt;&gt;'>
     467                        <input type='submit' value='&gt;&gt;'>
    470468                        </form>");     
    471469                }
     
    473471                {
    474472                        $comm=rcv('comm');
    475                         $sender_name=$_SESSION['name'];
    476                        
    477                         $res=mysql_query("SELECT `rname`, `tel`, `email` FROM `users` WHERE `id`='{$this->doc_data[8]}'");
    478                         $manager_name=@mysql_result($res,0,0); 
    479                         $manager_tel=@mysql_result($res,0,1);
    480                         $manager_email=@mysql_result($res,0,2);
    481                        
    482                         if(!$manager_email)
    483                         {
    484                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанный Вами счёт от {$CONFIG['site']['name']}\n\n$comm\n\nСообщение сгенерировано автоматически, отвечать на него не нужно! Для переписки используйте адрес, указанный на сайте http://{$CONFIG['site']['name']}!";
    485                         }
    486                         else
    487                         {
    488                                 $mail->Body = "Доброго времени суток!\nВо вложении находится заказанный Вами счёт от {$CONFIG['site']['name']}\n\n$comm\n\nИсполнительный менеджер $manager_name\nКонтактный телефон: $manager_tel\nЭлектронная почта (e-mail): $manager_email\nОтправитель: $sender_name";
    489                                 $mail->Sender   = $manager_email; 
    490                                 $mail->From     = $manager_email; 
    491                                 //$mail->FromName = "{$mail->FromName} ({$manager_name})";
    492                         }
    493 
    494                         $mail->AddAddress($email, $email ); 
    495                         $mail->Subject="Счёт от {$CONFIG['site']['name']}";
    496                        
    497                         $mail->AddStringAttachment($this->PrintPDF($doc, 1), "schet.pdf"); 
    498                         if($mail->Send())
    499                                 $tmpl->msg("Сообщение отправлено!","ok");
    500                         else
    501                                 $tmpl->msg("Ошибка отправки сообщения!",'err');
    502         }
     473                        doc_menu();
     474                        $this->SendDocEMail($email, $comm, 'Счёт', $this->PrintPDF($doc, 1), "invoice.pdf");
     475                        $tmpl->msg("Сообщение отправлено!","ok");
     476                }
    503477               
    504478        }
     
    656630                $str = "Внимание! Оплата данного счёта означает согласие с условиями поставки товара. Уведомление об оплате обязательно, иначе не гарантируется наличие товара на складе. Товар отпускается по факту прихода денег на р/с поставщика, самовывозом, при наличии доверенности и паспорта. Система интернет-заказов для постоянных клиентов доступна на нашем сайте http://{$CONFIG['site']['name']}.";
    657631                $str = iconv('UTF-8', 'windows-1251', $str);
    658                 $pdf->MultiCell(0,5,$str,1,1,'c',0);
     632                $pdf->MultiCell(0,5,$str,1,'C',0);
    659633                $pdf->y++;
    660634                $str='Счёт действителен в течение трёх банковских дней!';
  • web/login.php

    rc0dde68 r85095b7  
    338338                        throw new RegException('Код подтверждения введён неверно','img');
    339339                       
    340                        
    341 
    342340//                      header("Location: login.php?mode=reg".$l);
    343341                $conf=md5(time()+rand(0,1000000));
     
    345343                $msg=regMsg($login, $pass, $conf);
    346344
    347        
    348                 if(mailto($email,"Регистрация на ".$CONFIG['site']['name'], $msg))
    349                 {
    350                         $res=mysql_query("INSERT INTO `users` (`name`,`pass`,`email`,`date_reg`,`confirm`,`subscribe`)
    351                         VALUES ('$login', MD5('$pass'), '$email', NOW(),'$conf','$subs')  ");
    352                         if(mysql_errno())       throw new MysqlException("Не удалось добвать пользователя! Попробуйте позднее!");
    353                        
    354                         $tmpl->AddText("<h1 id='page-title'>Завершение регистрации</h1>
    355                         <form action='/login.php'>
    356                         <input type='hidden' name='mode' value='conf'>
    357                         Для проверки, что указанный адрес электронной почты принадлежит Вам, на него было выслано сообщение.<br>Для завершения регистрации введите полученный код:<br><br>
    358                         <input type='text' name='s'><button type='submit'>Продолжить</button><br><br>
    359                         Если Вы не получите письмо в течение трёх часов, возможно ваш сервер не принимает наше сообщение. Сообщите о проблеме администратору своего почтового сервера, или используйте другой!
    360                         </form>");     
    361                 }
    362                 else throw new Exception('Не удалось отправить сообщение электронной почты. Попытайтесь позднее. Если проблема сохранится - убедительная просьба сообщить об этом администратору.','img');
     345                mailto($email,"Регистрация на ".$CONFIG['site']['name'], $msg);
     346
     347                $res=mysql_query("INSERT INTO `users` (`name`,`pass`,`email`,`date_reg`,`confirm`,`subscribe`)
     348                VALUES ('$login', MD5('$pass'), '$email', NOW(),'$conf','$subs')  ");
     349                if(mysql_errno())       throw new MysqlException("Не удалось добвать пользователя! Попробуйте позднее!");
     350               
     351                $tmpl->AddText("<h1 id='page-title'>Завершение регистрации</h1>
     352                <form action='/login.php'>
     353                <input type='hidden' name='mode' value='conf'>
     354                Для проверки, что указанный адрес электронной почты принадлежит Вам, на него было выслано сообщение.<br>Для завершения регистрации введите полученный код:<br><br>
     355                <input type='text' name='s'><button type='submit'>Продолжить</button><br><br>
     356                Если Вы не получите письмо в течение трёх часов, возможно ваш сервер не принимает наше сообщение. Сообщите о проблеме администратору своего почтового сервера, или используйте другой!
     357                </form>");     
     358
    363359        }
    364360        catch(RegException $e)
  • web/message.php

    rc0dde68 r85095b7  
    11<?php
    22
    3 //      MultiMag v0.1 - Complex sales system
     3//      MultiMag v0.2 - Complex sales system
    44//
    5 //      Copyright (C) 2005-2010, BlackLight, TND Team, http://tndproject.org
     5//      Copyright (C) 2005-2012, BlackLight, TND Team, http://tndproject.org
    66//
    77//      This program is free software: you can redistribute it and/or modify
     
    8585        else
    8686        {
    87                 if(mailto($to,"Site message from {$CONFIG['site']['name']}", $text))
     87                try
     88                {
     89                        mailto($to,"Сообщение с сайта {$CONFIG['site']['name']}", $text);
    8890                        $tmpl->msg("Сообщение было отправлено!","ok");
    89                 else    $tmpl->logger("Не удалось отправить сообщение электронной почты! ".$mail->ErrorInfo);
     91                }
     92                catch(Exception $e)
     93                {
     94                        $tmpl->logger("Невозможно отправить сообщение!","err");
     95                }
    9096        }
    9197}
     
    127133       
    128134                if($CONFIG['site']['doc_adm_email'])
    129                         mailto($CONFIG['site']['doc_adm_email'],'Request for document cancel' ,$txt, $from);
     135                        mailto($CONFIG['site']['doc_adm_email'], 'Запрос на отмену проведения документа' ,$txt, $from);
    130136       
    131137                if($CONFIG['site']['doc_adm_jid'])
  • web/user.php

    rc0dde68 r85095b7  
    269269{
    270270        if(!isAccess('log_error','view'))       throw new AccessException("Недостаточно привилегий");
    271 
     271        $p=rcv('p');
     272        settype($p,'int');
     273        if($p==0)       $p=1;
     274        $lines=100;
     275        $from=($p-1)*$lines;
    272276        $tmpl->AddText("<h1>Журнал ошибок</h1>");
    273         $res=mysql_query("SELECT `id`, `page`, `referer`, `msg`, `date`, `ip`, `agent`, `uid` FROM `errorlog` ORDER BY `date` DESC");
     277        $res=mysql_query("SELECT SQL_CALC_FOUND_ROWS `id`, `page`, `referer`, `msg`, `date`, `ip`, `agent`, `uid` FROM `errorlog` ORDER BY `date` DESC LIMIT $from, $lines");
     278        list($total) = mysql_fetch_row(mysql_query('SELECT FOUND_ROWS()'));
    274279        $tmpl->AddText("<table width='100%' class='list'>
    275280        <tr><th>ID<th>Page<th>Referer<th>Msg<th>Date<th>IP<th>Agent<th>UID");
     
    281286        }
    282287        $tmpl->AddText("</table>");
     288       
     289        $pages_count = ceil($total/$lines);
     290        if ($pages_count > 1)
     291        {
     292                $tmpl->AddText("<p>Страницы: ");
     293                for ( $i = 1; $i <= $pages_count; ++$i )
     294                {
     295                        if($i==$p)      $tmpl->AddText("<b>$i</b> ");
     296                        else            $tmpl->AddText("<a href='?mode=elog&amp;p=$i'>$i</a> ");
     297                }
     298        $tmpl->AddText("</p>");
     299        }
    283300
    284301}
Note: See TracChangeset for help on using the changeset viewer.