1
revision_act.php in web/include/reports – MultiMag

source: web/include/reports/revision_act.php @ 3dfbeee

Last change on this file since 3dfbeee was 3dfbeee, checked in by BlackLight <blacklight@…>, 2 years ago

Добавлена возможность задать тескт email сообщения в акте сверки

  • Property mode set to 100644
File size: 24.1 KB
Line 
1<?php
2
3//      MultiMag v0.2 - Complex sales system
4//
5//      Copyright (C) 2005-2020, BlackLight, TND Team, http://tndproject.org
6//
7//      This program is free software: you can redistribute it and/or modify
8//      it under the terms of the GNU Affero General Public License as
9//      published by the Free Software Foundation, either version 3 of the
10//      License, or (at your option) any later version.
11//
12//      This program is distributed in the hope that it will be useful,
13//      but WITHOUT ANY WARRANTY; without even the implied warranty of
14//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15//      GNU Affero General Public License for more details.
16//
17//      You should have received a copy of the GNU Affero General Public License
18//      along with this program.  If not, see <http://www.gnu.org/licenses/>.
19//
20/// Акт сверки
21class Report_Revision_Act extends BaseReport {
22
23    function getName($short = 0) {
24        if ($short) {
25            return "Акт сверки";
26        } else {
27            return "Акт сверки взаимных расчетов";
28        }
29    }
30
31    function Form() {
32        global $tmpl, $db;
33        $pref = \pref::getInstance();
34        $date_end = date("Y-m-d");
35        $tmpl->addContent("<h1>" . $this->getName() . "</h1>
36            <script src='/css/jquery/jquery.js' type='text/javascript'></script>
37            <script type='text/javascript' src='/css/jquery/jquery.autocomplete.js'></script>
38            <form action='' method='post'>
39            <input type='hidden' name='mode' value='revision_act'>
40            Агент-партнёр:<br>
41            <input type='hidden' name='agent_id' id='agent_id' value=''>
42            <input type='text' id='ag' name='agent_name' style='width: 400px;' value=''><br>
43            <p class='datetime'>
44            Дата от:<br><input type='text' id='dt_f' name='date_st' value='1970-01-01' maxlength='10'><br>
45            Дата до:<br><input type='text' id='dt_t' name='date_end' value='$date_end' maxlength='10'></p><br>
46            Организация:<br><select name='firm_id'>");
47        if(\acl::testAccess('firm.global', \acl::VIEW)) {
48            $tmpl->addContent("<option value='0'>--- Любая ---</option>");
49        }
50           
51        $rs = $db->query("SELECT `id`, `firm_name` FROM `doc_vars` ORDER BY `firm_name`");
52        while ($nx = $rs->fetch_row()) {
53            if ($pref->site_default_firm_id == $nx[0]) {
54                $s = ' selected';
55            } else {
56                $s = '';
57            }
58            if(\acl::testAccess([ 'firm.global', 'firm.'.$nx[0]], \acl::VIEW)) {
59                $tmpl->addContent("<option value='$nx[0]' $s>" . html_out($nx[1]) . "</option>");
60            }
61           
62        }
63        $tmpl->addContent("</select><br>
64            Подтип документа (оставьте пустым, если учитывать не требуется):<br>
65            <input type='text' name='subtype'><br>
66            <label><input type='radio' name='opt' value='html'>Выводить в виде HTML</label><br>
67            <label><input type='radio' name='opt' value='pdf' checked>Выводить в виде PDF</label><br>
68            <label><input type='radio' name='opt' value='email'>отправить по email</label><br>
69            <label><input type='checkbox' name='no_stamp' value='1'>Не ставить печать</label><br>
70            email адрес (не указывайте, чтобы взять из контактов):<br>
71            <input type='text' name='email' value=''><br>
72            Текст email сообщения (оставьте пустым для использования текста по умолчанию):<br>
73            <textarea name='email_text'></textarea><br>
74            <button type='submit'>Сформировать отчет</button></form>
75
76            <script type='text/javascript'>
77            initCalendar('dt_f',false);
78            initCalendar('dt_t',false);
79            $(document).ready(function(){
80                $(\"#ag\").autocomplete(\"/docs.php\", {
81                delay:300,
82                minChars:1,
83                matchSubset:1,
84                autoFill:false,
85                selectFirst:true,
86                matchContains:1,
87                cacheLength:10,
88                maxItemsToShow:15,
89                formatItem:agliFormat,
90                onItemSelect:agselectItem,
91                extraParams:{'l':'agent','mode':'srv','opt':'ac'}
92                });
93            });
94            function agliFormat (row, i, num) {
95                var result = row[0] + \"<em class='qnt'>тел. \" +
96                row[2] + \"</em> \";
97                return result;
98            }
99            function agselectItem(li) {
100                if( li == null ) var sValue = \"Ничего не выбрано!\";
101                if( !!li.extra ) var sValue = li.extra[0];
102                else var sValue = li.selectValue;
103                document.getElementById('agent_id').value=sValue;
104            }
105
106            </script>");
107    }
108
109    function Make($opt = 'html') {
110        global $tmpl, $CONFIG, $db;
111        $email = request('email');
112        $no_stamp = request('no_stamp');
113        if ($opt == 'email') {
114            $opt = 'pdf';
115            $sendmail = 1;
116        } else {
117            $sendmail = 0;
118        }
119        if ($opt == 'html') {
120            $tmpl->loadTemplate('print');
121        } else if ($opt == 'pdf') {
122            global $CONFIG;
123            $tmpl->ajax = 1;
124            $tmpl->setContent('');
125            ob_start();
126            require('fpdf/fpdf.php');
127            $pdf = new FPDF('P');
128            $pdf->Open();
129            $pdf->SetAutoPageBreak(1, 12);
130            $pdf->AddFont('Arial', '', 'arial.php');
131            $pdf->tMargin = 10;
132            $pdf->AddPage('P');
133        }
134
135        $firm_id = rcvint('firm_id');
136        $subtype = request('subtype');
137        $date_st = strtotime(rcvdate('date_st'));
138        $date_end = strtotime(rcvdate('date_end')) + 60 * 60 * 24 - 1;
139        $agent_id = rcvint('agent_id');
140        \acl::accessGuard([ 'firm.global', 'firm.'.$firm_id], \acl::VIEW);
141       
142        $subtype_sql = $db->real_escape_string($subtype);
143
144        if ($firm_id) {
145            $res = $db->query("SELECT * FROM `doc_vars` WHERE `id`='$firm_id'");
146            $firm_vars = $res->fetch_assoc();
147        }
148        if (!$date_end) {
149            $date_end = time();
150        }
151
152        $agent = new \models\agent($agent_id);
153        if (!$email) {
154            $email = $agent->getEmail();
155        }
156        if (!$email && $sendmail) {
157            throw new \Exception("Не задан email");
158        }
159        $sql_add = '';
160        if ($firm_id > 0) {
161            $sql_add.=" AND `doc_list`.`firm_id`='$firm_id'";
162        }
163        if ($subtype != '') {
164            $sql_add.=" AND `doc_list`.`subtype`='$subtype_sql'";
165        }
166
167        $res = $db->query("SELECT `doc_list`.`id`, `doc_list`.`type`, `doc_list`.`date`, `doc_list`.`sum`, `doc_list`.`altnum`, `doc_types`.`name`, `doc_list`.`firm_id`
168            FROM `doc_list`
169            LEFT JOIN `doc_types` ON `doc_types`.`id`=`doc_list`.`type`
170                WHERE `doc_list`.`agent`='$agent_id' AND `doc_list`.`ok`!='0' AND `doc_list`.`date`<='$date_end' " . $sql_add . " ORDER BY `doc_list`.`date`");
171        if ($opt == 'html') {
172            $tmpl->setContent("<h1>" . $this->getName() . "</h1>
173                <center>от " . html_out($firm_vars['firm_name']) . "<br>за период c " . date("d.m.Y", $date_st) . " по " . date("d.m.Y", $date_end) . "
174                {$agent->fullname}</center>
175                Мы, нижеподписавшиеся, директор " . html_out($firm_vars['firm_name'] . ' ' . $firm_vars['firm_director']) . "
176                c одной стороны, и " . html_out($agent->leader_post . ' ' . $agent->fullname . ' ' . $agent->leader_name) . " с другой стороны,
177                составили настоящий акт сверки в том, что состояние взаимных расчетов по
178                данным учёта следующее:<br><br>
179                <table width=100%>
180                <tr>
181                <td colspan=4 width='50%'>по данным " . html_out($firm_vars['firm_name']) . "
182                <td colspan=4 width='50%'>по данным " . html_out($agent->fullname) . "
183                <tr>
184                <th>Дата<th>Операция<th>Дебет<th>Кредит
185                <th>Дата<th>Операция<th>Дебет<th>Кредит");
186        } 
187        else if ($opt == 'pdf') {
188            $pdf->SetFont('Arial', '', 16);
189            $str = iconv('UTF-8', 'windows-1251', $this->getName());
190            $pdf->Cell(0, 6, $str, 0, 1, 'C', 0);
191
192            $str = "от {$firm_vars['firm_name']}\nза период с " . date("d.m.Y", $date_st) . " по " . date("d.m.Y", $date_end);
193            $pdf->SetFont('Arial', '', 10);
194            $str = iconv('UTF-8', 'windows-1251', $str);
195            $pdf->MultiCell(0, 4, $str, 0, 'C', 0);
196            $pdf->Ln(2);
197            $str = "Мы, нижеподписавшиеся, директор {$firm_vars['firm_name']} {$firm_vars['firm_director']} c одной стороны, и {$agent->leader_post} {$agent->fullname} {$agent->leader_name}, с другой стороны, составили настоящий акт сверки о том, что состояние взаимных расчетов по данным учёта следующее:";
198            $str = iconv('UTF-8', 'windows-1251', $str);
199            $pdf->Write(5, $str, '');
200
201            $pdf->Ln(8);
202            $y = $pdf->GetY();
203            $base_x = $pdf->GetX();
204            $pdf->SetLineWidth(0.5);
205            $t_width = array(17, 44, 17, 17, 17, 44, 17, 0);
206            $t_text = array('Дата', 'Операция', 'Дебет', 'Кредит', 'Дата', 'Операция', 'Дебет', 'Кредит');
207
208            $h_width = $t_width[0] + $t_width[1] + $t_width[2] + $t_width[3];
209            $str1 = iconv('UTF-8', 'windows-1251', "По данным {$firm_vars['firm_name']}");
210            $str2 = iconv('UTF-8', 'windows-1251', "По данным {$agent->fullname}");
211
212            $pdf->MultiCell($h_width, 5, $str1, 0, 'L', 0);
213            $max_h = $pdf->GetY() - $y;
214            $pdf->SetY($y);
215            $pdf->SetX($base_x + $h_width);
216            $pdf->MultiCell(0, 5, $str2, 0, 'L', 0);
217            if (($pdf->GetY() - $y) > $max_h) {
218                $max_h = $pdf->GetY() - $y;
219            }
220            //$pdf->Cell(0,5,$str2,1,0,'L',0);
221            $pdf->SetY($y);
222            $pdf->SetX($base_x);
223            $pdf->Cell($h_width, $max_h, '', 1, 0, 'L', 0);
224            $pdf->Cell(0, $max_h, '', 1, 0, 'L', 0);
225            $pdf->Ln();
226            foreach ($t_width as $i => $w) {
227                $str = iconv('UTF-8', 'windows-1251', $t_text[$i]);
228                $pdf->Cell($w, 5, $str, 1, 0, 'C', 0);
229            }
230            $pdf->SetLineWidth(0.2);
231            $pdf->Ln();
232            $pdf->SetFont('', '', 8);
233        }
234        $pr = $ras = $s_pr = $s_ras = 0;
235        $f_print = false;
236        while ($nxt = $res->fetch_array()) {
237            if(!\acl::testAccess([ 'firm.global', 'firm.'.$nxt['firm_id']], \acl::VIEW)) {
238                continue;
239            }
240            $deb = $kr = "";
241            if (($nxt[2] >= $date_st) && (!$f_print)) {
242                $f_print = true;
243                if ($pr > $ras) {
244                    $pr-=$ras;
245                    $ras = '';
246                } else if ($pr < $ras) {
247                    $ras-=$pr;
248                    $pr = '';
249                } else {
250                    $pr = $ras = '';
251                }
252                if ($pr) {
253                    $pr = sprintf("%01.2f", $pr);
254                }
255                if ($ras) {
256                    $ras = sprintf("%01.2f", $ras);
257                }
258
259                if ($opt == 'html') {
260                    $tmpl->addContent("<tr><td colspan=2>Сальдо на начало периода<td>$ras<td>$pr<td><td><td><td>");
261                } else if ($opt == 'pdf') {
262                    $str = iconv('UTF-8', 'windows-1251', "Сальдо на начало периода");
263                    $pdf->Cell($t_width[0] + $t_width[1], 4, $str, 1, 0, 'L', 0);
264                    $pdf->Cell($t_width[2], 4, $ras, 1, 0, 'R', 0);
265                    $pdf->Cell($t_width[3], 4, $pr, 1, 0, 'R', 0);
266                    $pdf->Cell($t_width[4] + $t_width[5], 4, '', 1, 0, 'L', 0);
267                    $pdf->Cell($t_width[6], 4, '', 1, 0, 'L', 0);
268                    $pdf->Cell($t_width[7], 4, '', 1, 0, 'L', 0);
269                    $pdf->Ln();
270                }
271                $s_pr = $pr;
272                $s_ras = $ras;
273                $pr = $ras = 0;
274            }
275
276            if ($nxt[1] == 1) {
277                $pr+=$nxt[3];
278                $kr = $nxt[3];
279            } else if ($nxt[1] == 2) {
280                $ras+=$nxt[3];
281                $deb = $nxt[3];
282            } else if ($nxt[1] == 4) {
283                $pr+=$nxt[3];
284                $kr = $nxt[3];
285            } else if ($nxt[1] == 5) {
286                $ras+=$nxt[3];
287                $deb = $nxt[3];
288            } else if ($nxt[1] == 6) {
289                $pr+=$nxt[3];
290                $kr = $nxt[3];
291            } else if ($nxt[1] == 7) {
292                $ras+=$nxt[3];
293                $deb = $nxt[3];
294            } else if ($nxt[1] == 18) {
295                if ($nxt[3] > 0) {
296                    $ras+=$nxt[3];
297                    $deb = $nxt[3];
298                } else {
299                    $pr+=abs($nxt[3]);
300                    $kr = abs($nxt[3]);
301                }
302            } else {
303                continue;
304            }
305
306            if ($f_print) {
307                if (!$nxt[4]) {
308                    $nxt[4] = $nxt[0];
309                }
310                if ($deb) {
311                    $deb = sprintf("%01.2f", $deb);
312                }
313                if ($kr) {
314                    $kr = sprintf("%01.2f", $kr);
315                }
316                $dt = date("d.m.Y", $nxt[2]);
317
318                if ($opt == 'html') {
319                    $tmpl->addContent("<tr><td>$dt<td>$nxt[5] N$nxt[4]<td>$deb<td>$kr<td><td><td><td>");
320                }
321                else if ($opt == 'pdf') {
322                    $str = iconv('UTF-8', 'windows-1251', "$nxt[5] N$nxt[4]");
323                    $pdf->Cell($t_width[0], 4, $dt, 1, 0, 'L', 0);
324                    $pdf->Cell($t_width[1], 4, $str, 1, 0, 'L', 0);
325                    $pdf->Cell($t_width[2], 4, $deb, 1, 0, 'R', 0);
326                    $pdf->Cell($t_width[3], 4, $kr, 1, 0, 'R', 0);
327                    $pdf->Cell($t_width[4], 4, '', 1, 0, 'L', 0);
328                    $pdf->Cell($t_width[5], 4, '', 1, 0, 'L', 0);
329                    $pdf->Cell($t_width[6], 4, '', 1, 0, 'L', 0);
330                    $pdf->Cell($t_width[7], 4, '', 1, 0, 'L', 0);
331                    $pdf->Ln();
332                }
333            }
334        }
335
336        $pr = sprintf("%01.2f", $pr);
337        $ras = sprintf("%01.2f", $ras);
338
339        if ($opt == 'html') {
340            $tmpl->addContent("<tr><td colspan=2>Обороты за период<td>$ras<td>$pr<td><td><td><td>");
341        } else if ($opt == 'pdf') {
342            $str = iconv('UTF-8', 'windows-1251', "Обороты за период");
343            $pdf->Cell($t_width[0] + $t_width[1], 4, $str, 1, 0, 'L', 0);
344            $pdf->Cell($t_width[2], 4, $ras, 1, 0, 'R', 0);
345            $pdf->Cell($t_width[3], 4, $pr, 1, 0, 'R', 0);
346            $pdf->Cell($t_width[4] + $t_width[5], 4, '', 1, 0, 'L', 0);
347            $pdf->Cell($t_width[6], 4, '', 1, 0, 'L', 0);
348            $pdf->Cell($t_width[7], 4, '', 1, 0, 'L', 0);
349            $pdf->Ln();
350        }
351
352        $pr += $s_pr;
353        $ras += $s_ras;
354
355        $razn = round($pr - $ras, 2);
356        $razn_p = abs($razn);
357        $razn_text = num2str($razn_p, 'rub', 2);
358        $razn_p = number_format($razn_p, 2, '.', ' ');
359
360        if ($pr > $ras) {
361            $pr-=$ras;
362            $ras = '';
363        } else if ($pr < $ras) {
364            $ras-=$pr;
365            $pr = '';
366        } else {
367            $pr = $ras = '';
368        }
369        if ($pr) {
370            $pr = sprintf("%01.2f", $pr);
371        }
372        if ($ras) {
373            $ras = sprintf("%01.2f", $ras);
374        }
375
376        if ($opt == 'html') {
377            $tmpl->addContent("<tr><td colspan=2>Сальдо на конец периода<td>$ras<td>$pr<td colspan=4>
378                <tr><td colspan=4>По данным {$firm_vars['firm_name']} на " . date("d.m.Y", $date_end) . "<td colspan=4>
379                <tr><td colspan=4>");
380            if ($razn > 0) {
381                $tmpl->addContent("задолженность в пользу " . html_out($agent->fullname) . " $razn_p руб.");
382            } else if ($razn < 0) {
383                $tmpl->addContent("задолженность в пользу " . html_out($firm_vars['firm_name']) . " $razn_p руб.");
384            } else {
385                $tmpl->addContent("переплат и задолженностей нет!");
386            }
387            if($razn) {
388                $str = "В результате сверки выявлено расхождение информации о состоянии расчётов в размере {$razn_p} руб. ( {$razn_text} )";
389                $tmpl->addContent("<tr><td colspan=4>".html_out($str)."</td></tr>");
390            }
391            $tmpl->addContent("<td colspan=4>
392                <tr><td colspan=4>От " . $firm_vars['firm_name'] . "<br>
393                директор<br>____________________________ (" . $firm_vars['firm_director'] . ")<br><br>м.п.<br>
394                <td colspan=4>От " . html_out($agent->fullname) . "<br>
395                " . html_out($agent->leader_post) . "<br> ____________________________ (" . html_out($agent->leader_name) . ")<br><br>м.п.<br>
396                </table>");
397        }
398        else if ($opt == 'pdf') {
399            $str = iconv('UTF-8', 'windows-1251', "Сальдо на конец периода");
400            $pdf->Cell($t_width[0] + $t_width[1], 4, $str, 1, 0, 'L', 0);
401            $pdf->Cell($t_width[2], 4, $ras, 1, 0, 'L', 0);
402            $pdf->Cell($t_width[3], 4, $pr, 1, 0, 'L', 0);
403            $pdf->Cell($t_width[4] + $t_width[5], 4, '', 1, 0, 'L', 0);
404            $pdf->Cell($t_width[6], 4, '', 1, 0, 'L', 0);
405            $pdf->Cell($t_width[7], 4, '', 1, 0, 'L', 0);
406            $pdf->Ln(7);
407            $str = iconv('UTF-8', 'windows-1251', "По данным {$firm_vars['firm_name']} на " . date("d.m.Y", $date_end));
408            $pdf->Write(4, $str);
409            $pdf->Ln();
410            if ($razn > 0) {
411                $str = "задолженность в пользу " . $agent->fullname . " $razn_p руб.";
412            } else if ($razn < 0) {
413                $str = "задолженность в пользу " . $firm_vars['firm_name'] . " $razn_p руб.";
414            } else {
415                $str = "переплат и задолженностей нет!";
416            }
417
418            $str = iconv('UTF-8', 'windows-1251', $str);
419            $pdf->Write(4, $str);
420            if($razn) {
421                $str = "В результате сверки выявлено расхождение информации о состоянии расчётов в размере {$razn_p} руб. ( {$razn_text} )";
422                $str = iconv('UTF-8', 'windows-1251', $str);
423                $pdf->Write(4, $str);
424            }
425           
426            $pdf->Ln(7);
427            $x = $pdf->getX() + $t_width[0] + $t_width[1] + $t_width[2] + $t_width[3];
428            $y = $pdf->getY();
429           
430            if (!$no_stamp && \cfg::get('site', 'doc_shtamp')) {
431                $shtamp_img = str_replace('{FN}', $firm_id, \cfg::get('site', 'doc_shtamp'));
432                $pdf->Image($shtamp_img, 4, $pdf->GetY(), 120);               
433            }
434            else {
435                $str = iconv('UTF-8', 'windows-1251', "От {$firm_vars['firm_name']}\n\nДиректор ____________________________ ({$firm_vars['firm_director']})\n\n           м.п.");
436                $pdf->MultiCell($t_width[0] + $t_width[1] + $t_width[2] + $t_width[3], 5, $str, 0, 'L', 0);
437            }   
438           
439            $pdf->lMargin = $x;
440            $pdf->setX($x);
441            $pdf->setY($y);
442            $str = iconv('UTF-8', 'windows-1251', "От {$agent->fullname}\n\n{$agent->leader_post}  ____________________________ ({$agent->leader_name})\n\n           м.п.");
443            $pdf->MultiCell(0, 5, $str, 0, 'L', 0);
444
445           
446
447            $pdf->Ln();
448            if (!$sendmail) {
449                $pdf->Output('rev_act.pdf', 'I');
450            } else {
451                /// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
452                $data = $pdf->Output('rev_act.pdf', 'S');
453                $pref = \pref::getInstance();
454
455                $email_message = new \email_message();
456                $email_message->default_charset = "UTF-8";
457                if ($agent->fullname) {
458                    $email_message->SetEncodedEmailHeader("To", $email, $agent->fullname);
459                } else {
460                    $email_message->SetEncodedEmailHeader("To", $email, $email);
461                }
462
463                $email_message->SetEncodedHeader("Subject", "{$pref->site_display_name} - акт сверки ({$pref->site_name})");
464
465                $res = $db->query("SELECT `worker_real_name`, `worker_phone`, `worker_email` FROM `users_worker_info` WHERE `user_id`='{$_SESSION['uid']}'");
466                if ($res->num_rows) {
467                    $doc_autor = $res->fetch_assoc();
468                } else {
469                    $doc_autor = array('worker_email' => '');
470                }
471
472                $email_text = request('email_text');
473                if ($email_text == '') {
474                    $email_text = "Здравствуйте, {$agent->fullname}!\nВо вложении находится акт сверки от {$pref->site_display_name} ({$pref->site_name})";
475                }
476
477                if (!$doc_autor['worker_email']) {
478                    $email_message->SetEncodedEmailHeader("From", $pref->site_email, "Почтовый робот {$pref->site_name}");
479                    $email_message->SetHeader("Sender", $pref->site_email);
480                    $text_message = "$email_text\n\n"
481                        . "Сообщение сгенерировано автоматически, отвечать на него не нужно!\n"
482                        . "Для переписки используйте адрес, указанный в контактной информации на сайте http://{$pref->site_name}!";
483                } else {
484                    $email_message->SetEncodedEmailHeader("From", $doc_autor['worker_email'], $doc_autor['worker_real_name']);
485                    $email_message->SetHeader("Sender", $doc_autor['worker_email']);
486                    $text_message = "$email_text\n\n"
487                        . "Ответственный сотрудник: {$doc_autor['worker_real_name']}\nКонтактный телефон: {$doc_autor['worker_phone']}\n"
488                        . "Электронная почта (e-mail): {$doc_autor['worker_email']}";
489                    $text_message.="\nОтправитель: {$_SESSION['name']}";
490                }
491                $email_message->AddQuotedPrintableTextPart($text_message);
492
493                $text_attachment = array(
494                    "Data" => $data,
495                    "Name" => 'rev_act.pdf',
496                    "Content-Type" => "automatic/name",
497                    "Disposition" => "attachment"
498                );
499                $email_message->AddFilePart($text_attachment);
500
501                $error = $email_message->Send();
502
503                if (strcmp($error, "")) {
504                    throw new Exception($error);
505                }
506                $tmpl->ajax = 0;
507                $tmpl->msg("Документ отправлен по адресу email: ".html_out($email), "ok");
508            }
509        }
510    }
511   
512    /**  Добавить изображение с печатью и подписью
513     * @param $firm_id integer ID организации
514     */
515    protected function addSignAndStampImage($firm_id) {
516        if($firm_id == 0) {
517            throw new \OutOfBoundsException('ID организации не задан');
518        }
519       
520    }
521
522}
Note: See TracBrowser for help on using the repository browser.