1
invoice.php in trunk/web/include/doc/printforms/peremeshenie – MultiMag

source: trunk/web/include/doc/printforms/peremeshenie/invoice.php @ 986

Last change on this file since 986 was 986, checked in by blacklight, 8 months ago
  • Добвлен вывод печати организации в печатную форму коммерческого предложения
  • Проведён рефакторинг печатных форм документов
File size: 4.6 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\peremeshenie; 
20
21class invoice extends \doc\printforms\iPrintFormPdf {
22 
23    public function getName() {
24        return "Накладная перемещения";
25    }
26       
27    /// Сформировать данные печатной формы
28    public function make() {
29        global $db, $CONFIG;
30        $doc_id = $this->doc->getId();
31        $doc_data = $this->doc->getDocDataA();
32        $dop_data = $this->doc->getDopDataA();
33        $firm_vars = $this->doc->getFirmVarsA();
34        $nomenclature = $this->doc->getDocumentNomenclature('dest_place,comment');
35       
36        $sklad_info = $db->selectRowA('doc_sklady', $doc_data['sklad'], array('name'));
37        if(! $sklad_info )      throw new Exception("Исходный склад не найден!");
38        $from_sklad = $sklad_info['name'];
39        $sklad_info = $db->selectRowA('doc_sklady', $dop_data['na_sklad'], array('name'));
40        if(! $sklad_info )      throw new Exception("Склад назначения не найден!");
41        $to_sklad = $sklad_info['name'];
42       
43        $this->addPage();
44       
45        $dt = date("d.m.Y", $doc_data['date']);
46        $text = "Накладная перемещения N {$doc_data['altnum']}{$doc_data['subtype']} ($doc_id) от $dt";
47        $this->addHeader($text);
48        $text = "Организация: {$firm_vars['firm_name']}, телефон: {$firm_vars['firm_telefon']}";
49        $this->addInfoLine($text);
50        $this->addInfoLine('Исходный склад: ' . $from_sklad);
51        $this->addInfoLine('Склад назначения: ' . $to_sklad);
52        $this->pdf->Ln(3);
53
54        $th_widths = array(8);
55        $th_texts = array('№');
56        $tbody_aligns = array('R');
57        if ($CONFIG['poseditor']['vc']) {
58            $th_widths[] = 20;
59            $th_texts[] = 'Код';
60            $tbody_aligns[] = 'R';
61            $th_widths[] = 86;
62        } else {
63            $th_widths[] = 106;
64        }
65        $th_texts[] = 'Наименование';
66        $tbody_aligns[] = 'L';
67        $th_widths = array_merge($th_widths, array(22, 22, 16, 18));
68        $th_texts = array_merge($th_texts, array('Место ист.', 'Место назн.', 'Кол-во', 'Об. масса'));
69        $tbody_aligns = array_merge($tbody_aligns, array('C', 'C', 'R', 'R'));
70        $this->addTableHeader($th_widths, $th_texts, $tbody_aligns);       
71       
72        $i = 0;
73        $cnt = $summass = $sum_vat = 0;
74        foreach($nomenclature as $line) {
75            $i++;
76            $row = array($i);
77            $comm = array('');
78            if (@$CONFIG['poseditor']['vc']) {
79                $row[] = $line['vc'];
80                $comm[] = '';
81            }
82            $row[] = $line['name'];
83            $comm[] = $line['comment'];
84            $row = array_merge($row, array($line['place'], $line['dest_place'], "{$line['cnt']} {$line['unit_name']}", $line['mass'] * $line['cnt']));
85            $this->controlPageBreak(30);
86            $comm  = array_merge($comm, array('', '',  '', ''));
87            $this->pdf->RowIconvCommented($row, $comm);
88            $cnt += $line['cnt'];
89            $summass += $line['mass'] * $line['cnt'];
90        }       
91        $this->pdf->Ln();
92        $text = "Всего $i наименований количеством $cnt единиц и общей массой " . sprintf("%01.3f", $summass) . " кг.";
93        $this->addInfoLine($text);
94        $text = "Выдал кладовщик: ____________________________________";
95        $this->addSignLine($text);
96        $text = "Вид, количество и масса принятого товара совпадает с накладной. Внешние дефекты не обнаружены.";
97        $this->addInfoLine($text);
98        $text = "Принял кладовщик:_____________________________________";
99        $this->addSignLine($text);
100        return;
101    }   
102}
Note: See TracBrowser for help on using the repository browser.