1
plus.php in trunk/web/include/doc/printforms/corract – MultiMag

source: trunk/web/include/doc/printforms/corract/plus.php @ 986

Last change on this file since 986 was 986, checked in by blacklight, 8 months ago
  • Добвлен вывод печати организации в печатную форму коммерческого предложения
  • Проведён рефакторинг печатных форм документов
File size: 5.5 KB
Line 
1<?php
2//      MultiMag v0.2 - Complex sales system
3//
4//      Copyright (C) 2005-2018, BlackLight, TND Team, http://tndproject.org
5//
6//      This program is free software: you can redistribute it and/or modify
7//      it under the terms of the GNU Affero General Public License as
8//      published by the Free Software Foundation, either version 3 of the
9//      License, or (at your option) any later version.
10//
11//      This program is distributed in the hope that it will be useful,
12//      but WITHOUT ANY WARRANTY; without even the implied warranty of
13//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14//      GNU Affero General Public License for more details.
15//
16//      You should have received a copy of the GNU Affero General Public License
17//      along with this program.  If not, see <http://www.gnu.org/licenses/>.
18//
19namespace doc\printforms\corract; 
20
21class plus extends \doc\printforms\iPrintFormInvoicePdf {
22   
23    public function getName() {
24        return "Акт оприходования";
25    }
26   
27    /// Добавить блок с информацией о поставщике и покупателе для расходной накладной
28    protected function addPartnerInfoBlock() {
29        $firm_vars = $this->doc->getFirmVarsA();
30        $text = "Организация: {$firm_vars['firm_name']}, телефон: {$firm_vars['firm_telefon']}";
31        $this->addInfoLine($text);       
32        $this->pdf->Ln(3);
33    }
34
35    /// Добавить блок с заголовком формы
36    protected function addFormHeaderBlock() {
37        $doc_id = $this->doc->getId();
38        $doc_data = $this->doc->getDocDataA();
39        $dop_data = $this->doc->getDopDataA();
40
41        $text = "Оприходование товаров N {$doc_data['altnum']}{$doc_data['subtype']} ($doc_id) от " . date("d.m.Y", $doc_data['date']);
42
43        $this->addHeader($text); 
44    }
45   
46    /// Добавить блок с таблицей номенклатуры
47    protected function addNomenclatureTableBlock() {
48        global $CONFIG;
49        $nomenclature = $this->doc->getDocumentNomenclature();
50       
51        $th_widths = array(8, 20, 100, 23, 20, 20);
52        $th_texts = array('№', 'Артикул', 'Наименование', 'Кол-во',  'Цена', 'Сумма');
53       
54        $this->addTableHeader($th_widths, $th_texts);   
55       
56        $th_widths = array(8, 20, 100, 15, 8, 20, 20);
57        $tbody_aligns = array('R', 'L', 'L', 'R', 'L', 'R', 'R');
58        $this->pdf->SetWidths($th_widths);
59        $this->pdf->SetAligns($tbody_aligns);
60       
61        $this->form_linecount = 0;
62        $this->form_sum = $this->form_summass = 0;
63        foreach($nomenclature as $line) {
64            if($line['cnt']<0) {
65                continue;
66            }
67            $this->form_linecount++;
68            $price = sprintf("%01.2f р.", $line['price']);
69            $sum_line = sprintf("%01.2f р.", $line['sum']);
70            $row = array($this->form_linecount);
71            if (@$CONFIG['poseditor']['vc']) {
72                $row[] = $line['vc'];
73            }
74            $row[] = $line['name'];
75            $row = array_merge($row, array($line['cnt'], $line['unit_name'], $price, $sum_line));
76            $this->controlPageBreak(30);
77            $this->pdf->RowIconv($row);
78            $this->form_sum += $line['sum'];
79            $this->form_summass += $line['mass'] * $line['cnt'];
80        } 
81    }
82   
83    // Вывод элемента *должность/подпись/фио*
84    protected function makeDPFItem($name, $step = 5, $microstep = 3) {
85        $p1_w = array(35, 45, 5, 55, 5, 45, 0);
86        $this->pdf->SetFont('', '', 7);
87        $this->pdf->CellIconv($p1_w[0], $step, $name, 0, 0, 'L', 0); 
88        $this->pdf->CellIconv($p1_w[1], $step, '', 'B', 0, 'C', 0);
89        $this->pdf->CellIconv($p1_w[2], $step, '', 0, 0, 'C', 0);
90        $this->pdf->CellIconv($p1_w[3], $step, '', 'B', 0, 'R', 0);
91        $this->pdf->CellIconv($p1_w[4], $step, '', 0, 0, 'L', 0);
92        $this->pdf->CellIconv($p1_w[5], $step, '', 'B', 1, 'С', 0);
93       
94        $this->pdf->SetFont('', '', 5);
95        $this->pdf->CellIconv($p1_w[0], $microstep, '', 0, 0, 'C', 0);
96        $this->pdf->CellIconv($p1_w[1], $microstep, '(должность)', 0, 0, 'C', 0);
97        $this->pdf->CellIconv($p1_w[2], $microstep, '', 0, 0, 'C', 0);
98        $this->pdf->CellIconv($p1_w[3], $microstep, '(подпись)', 0, 0, 'C', 0);
99        $this->pdf->CellIconv($p1_w[4], $microstep, '',0, 0, 'C', 0);
100        $this->pdf->CellIconv($p1_w[5], $microstep, '(ф.и.о.)', 0, 1, 'C', 0);
101    }
102   
103    /// Добавить блок с подписями
104    protected function addSignBlock() { 
105        $this->makeDPFItem('Председатель комиссии');
106        $this->pdf->ln();
107        $this->makeDPFItem('Члены комиссии');
108        $this->makeDPFItem('');
109        $this->makeDPFItem('');
110       
111        $text = "Лица, ответственные за сохранность товарно-материальных ценностей";
112        $this->addInfoLine($text, 7);
113        $this->makeDPFItem('');
114        $this->makeDPFItem('');
115        $this->makeDPFItem('');
116    }
117   
118    /// Сформировать печатную форму
119    public function make() {
120        $this->addPage();       
121        $this->addFormHeaderBlock();     
122        $this->addPartnerInfoBlock(); 
123        $this->addNomenclatureTableBlock();
124        $this->pdf->Ln();
125       
126        $this->addSummaryBlock();
127        $this->pdf->Ln();
128
129        $this->addSignBlock();
130        return;
131    }
132}
Note: See TracBrowser for help on using the repository browser.