1
order.php in trunk/web/include/doc/printforms/zayavka – MultiMag

source: trunk/web/include/doc/printforms/zayavka/order.php @ 986

Last change on this file since 986 was 986, checked in by blacklight, 8 months ago
  • Добвлен вывод печати организации в печатную форму коммерческого предложения
  • Проведён рефакторинг печатных форм документов
File size: 8.1 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\zayavka; 
20
21class order extends \doc\printforms\iPrintFormPdf {
22 
23    public function getName() {
24        return "Заказ";
25    }
26       
27    /// Сформировать данные печатной формы
28    public function make() {
29        global $db, $CONFIG;
30        $doc_data = $this->doc->getDocDataA();
31        $firm_vars = $this->doc->getFirmVarsA();
32        $agent = new \models\agent($doc_data['agent']);
33        $nomenclature = $this->doc->getDocumentNomenclature('vat');
34        $res = $db->query("SELECT `name`, `bik`, `rs`, `ks` FROM `doc_kassa` WHERE `ids`='bank' AND `num`='{$doc_data['bank']}'");
35        $bank_data = $res->fetch_assoc();
36       
37        $this->addPage();       
38        $this->addHeadBanner($doc_data['firm_id']);
39        $this->addSiteBanner();
40       
41        $this->pdf->SetFont('', '', 10);
42        $text = "Внимание!"
43            . " Оплата данного заказа означает согласие с условиями поставки товара."
44            . " Уведомление об оплате обязательно, иначе не гарантируется наличие товара на складе."
45            . " Товар отпускается по факту прихода денег на р/с поставщика, самовывозом, при наличии доверенности и паспорта.";
46        $this->pdf->MultiCellIconv(0, 5, $text, 1, 'C', 0);       
47       
48        $this->pdf->y++;
49        $this->pdf->SetFont('', 'U', 10);
50        $text = 'Заказ действителен в течение трёх банковских дней!';
51        $this->pdf->CellIconv(0, 5, $text, 0, 1, 'C', 0);
52        $this->pdf->ln(2);
53       
54        $this->pdf->SetFont('', '', 11);
55        $text = 'Образец заполнения платёжного поручения:';
56        $this->pdf->CellIconv(0, 5, $text, 0, 1, 'C', 0);
57
58        $old_x = $this->pdf->GetX();
59        $old_y = $this->pdf->GetY();
60        $old_margin = $this->pdf->lMargin;
61        $table_c = 110;
62        $table_c2 = 15;
63
64        $this->pdf->SetFont('', '', 9);
65        $this->pdf->MultiCellIconv($table_c, 5, $bank_data['name'], 0, 1, 'L', 0);
66        $this->pdf->SetX($old_x);
67        $this->pdf->SetY($old_y);       
68        $this->pdf->CellIconv($table_c, 10, '' , 1, 1, 'L', 0);
69        $text = 'ИНН ' . $firm_vars['firm_inn'] . ' КПП';
70        $this->pdf->CellIconv($table_c, 5, $text, 1, 1, 'L', 0);
71
72        $tx = $this->pdf->GetX();
73        $ty = $this->pdf->GetY();
74        $this->pdf->CellIconv($table_c, 10, '', 1, 1, 'L', 0);
75        $this->pdf->lMargin = $old_x + 1;
76        $this->pdf->SetX($tx + 1);
77        $this->pdf->SetY($ty + 1);
78        $this->pdf->SetFont('', '', 9);
79        $text = 'Получатель: ' . $firm_vars['firm_name'];
80        $this->pdf->MultiCellIconv($table_c, 3, $text, 0, 1, 'L', 0);
81
82        $this->pdf->SetFont('', '', 12);
83        $this->pdf->lMargin = $old_x + $table_c;
84        $this->pdf->SetY($old_y);
85        $text = 'БИК';
86        $this->pdf->CellIconv($table_c2, 5, $text, 1, 1, 'L', 0);
87        $text = 'корр/с';
88        $this->pdf->CellIconv($table_c2, 10, $text, 1, 1, 'L', 0);
89        $text = 'р/с N';
90        $this->pdf->CellIconv($table_c2, 10, $text, 1, 1, 'L', 0);
91
92        $this->pdf->lMargin = $old_x + $table_c + $table_c2;
93        $this->pdf->SetY($old_y);
94        $this->pdf->Cell(0, 5, $bank_data['bik'], 1, 1, 'L', 0);
95        $this->pdf->Cell(0, 5, $bank_data['ks'], 1, 1, 'L', 0);
96        $this->pdf->Cell(0, 15, $bank_data['rs'], 1, 1, 'L', 0);
97        $this->pdf->lMargin = $old_margin;
98        $this->pdf->SetY($old_y + 30);
99
100        if( @$CONFIG['doc']['invoice_header'] ) {
101            $this->pdf->ln(2);
102            $this->pdf->SetFont('', '', 14);
103            $this->pdf->MultiCellIconv(0, 6, $CONFIG['doc']['invoice_header'], 1, 'C', 0);
104            $this->pdf->ln(2);
105        }
106       
107        $text = 'Заказ № '.$doc_data['altnum'].' от '.date("d.m.Y", $doc_data['date']);
108        $this->addHeader($text);
109        if ($doc_data['contract']) {
110            $contract = new \doc_Dogovor($doc_data['contract']);
111            $contract_data = $contract->getDocDataA();
112            $text = 'К договору № ' . $contract_data['altnum'] . ' от ' . date("d.m.Y", $contract_data['date']);
113            $this->addInfoLine($text);
114        }
115        $text = "Поставщик: {$firm_vars['firm_name']}, {$firm_vars['firm_adres']}, тел: {$firm_vars['firm_telefon']}";
116        $this->addInfoLine($text);
117        $text = "Покупатель: {$agent->fullname}, адрес: {$agent->adres}, телефон: ".$agent->getPhone();
118        $this->addInfoLine($text);
119        $this->pdf->Ln(3);
120       
121        if ($doc_data['comment']) {
122            $this->pdf->SetFont('', '', 11);
123            $text = str_replace("<br>", ", ", $doc_data['comment']);
124            $this->pdf->MultiCellIconv(0, 5, $text, 0, 1, 'L');
125            $this->pdf->Ln(3);
126        }
127
128        $th_widths = array(8);
129        $th_texts = array('№');
130        $tbody_aligns = array('R');
131        if ($CONFIG['poseditor']['vc']) {
132            $th_widths[] = 20;
133            $th_texts[] = 'Код';
134            $tbody_aligns[] = 'R';
135            $th_widths[] = 106;
136        } else {
137            $th_widths[] = 126;
138        }
139        $th_texts[] = 'Наименование';
140        $tbody_aligns[] = 'L';
141        $th_widths = array_merge($th_widths, array(16, 20, 20));
142        $th_texts = array_merge($th_texts, array('Кол-во', 'Цена', 'Сумма'));
143        $tbody_aligns = array_merge($tbody_aligns, array('R', 'R', 'R'));
144        $this->addTableHeader($th_widths, $th_texts, $tbody_aligns);       
145       
146        $i = 0;
147        $sum = $cnt = $summass = $sum_vat = 0;
148        foreach($nomenclature as $line) {
149            $i++;
150            $price = sprintf("%01.2f р.", $line['price']);
151            $sum_line = sprintf("%01.2f р.", $line['sum']);
152            $row = array($i);
153            if (@$CONFIG['poseditor']['vc']) {
154                $row[] = $line['vc'];
155            }
156            $row[] = $line['name'];
157            $row = array_merge($row, array("{$line['cnt']} {$line['unit_name']}", $price, $sum_line));
158            $this->controlPageBreak(30);
159            $this->pdf->SetFont('', '', 8);
160            $this->pdf->RowIconv($row);
161            $sum += $line['sum'];
162            $cnt += $line['cnt'];
163            $summass += $line['mass'] * $line['cnt'];
164            $sum_vat += $line['vat_s'];
165        }
166       
167        $cost = num2str($sum);
168        $sumcost = sprintf("%01.2f", $sum);
169        $summass = sprintf("%01.3f", $summass);
170
171        $this->controlPageBreak(50);       
172        $this->addSignAndStampImage($doc_data['firm_id']);
173
174        $this->pdf->SetFont('', '', 10);
175        $text = "Масса товара: $summass кг.";
176        $this->pdf->CellIconv(0, 6, $text, 0, 0, 'L', 0);
177
178        $vat_p = sprintf("%01.2f", $sum_vat);
179        $this->pdf->SetFont('', '', 12);
180        $text = "Итого: $i наименований на сумму $sumcost руб.";
181        $this->pdf->CellIconv(0, 7, $text, 0, 1, 'R', 0);
182        $text = "В том числе НДС: $vat_p руб.";
183        $this->pdf->CellIconv(0, 5, $text, 0, 1, 'R', 0);
184
185        $this->addWorkerInfo($doc_data);
186
187        return;
188    }   
189}
Note: See TracBrowser for help on using the repository browser.