1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
pdf.php
См. документацию.
1<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
2$arPaySysAction["ENCODING"] = "";
3$ORDER_ID = intval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);
4if (!is_array($arOrder))
5 $arOrder = CSaleOrder::GetByID($ORDER_ID);
6
8 die();
9
10if ($_REQUEST['BLANK'] == 'Y')
11 $blank = true;
12
13$pdf = new CSalePdf('P', 'pt', 'A4');
14
15if (CSalePaySystemAction::GetParamValue('BACKGROUND', false))
16{
17 $pdf->SetBackground(
18 CSalePaySystemAction::GetParamValue('BACKGROUND', false),
19 CSalePaySystemAction::GetParamValue('BACKGROUND_STYLE', false)
20 );
21}
22
23$pageWidth = $pdf->GetPageWidth();
24$pageHeight = $pdf->GetPageHeight();
25
26$pdf->AddFont('Font', '', 'pt_sans-regular.ttf', true);
27$pdf->AddFont('Font', 'B', 'pt_sans-bold.ttf', true);
28
29$fontFamily = 'Font';
30$fontSize = 10.5;
31
33 'top' => intval(CSalePaySystemAction::GetParamValue('MARGIN_TOP', false) ?: 15) * 72/25.4,
34 'right' => intval(CSalePaySystemAction::GetParamValue('MARGIN_RIGHT', false) ?: 15) * 72/25.4,
35 'bottom' => intval(CSalePaySystemAction::GetParamValue('MARGIN_BOTTOM', false) ?: 15) * 72/25.4,
36 'left' => intval(CSalePaySystemAction::GetParamValue('MARGIN_LEFT', false) ?: 20) * 72/25.4
37);
38
39$width = $pageWidth - $margin['left'] - $margin['right'];
40
41$pdf->SetDisplayMode(100, 'continuous');
42$pdf->SetMargins($margin['left'], $margin['top'], $margin['right']);
43$pdf->SetAutoPageBreak(true, $margin['bottom']);
44
45$pdf->AddPage();
46
47$y0 = $pdf->GetY();
50
51if (CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false))
52{
53 list($imageHeight, $imageWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false));
54
55 $imgDpi = intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96;
56 $imgZoom = 96 / $imgDpi;
57
58 $logoHeight = $imageHeight * $imgZoom + 5;
59 $logoWidth = $imageWidth * $imgZoom + 5;
60
61 $pdf->Image(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false), $pdf->GetX(), $pdf->GetY(), -$imgDpi, -$imgDpi);
62}
63
64$pdf->Ln(10);
65
66$pdf->SetFont($fontFamily, 'B', $fontSize*3);
67
68$pdf->SetX($pdf->GetX() + $logoWidth);
69$pdf->MultiCell(0, 30, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_NAME", false)), 0, 'L');
70$pdf->Ln();
71$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
72
73$pdf->Ln(10);
74
75
76$pdf->SetFont($fontFamily, 'B', $fontSize-2);
77
79if (CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false))
80{
81 $seller .= ' - ';
82 $seller .= CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false);
83 $seller .= ' ';
84}
85
87$pdf->Cell($pdf->GetStringWidth($seller), 10, $seller, 'B');
88
89$pdf->Ln();
90$pdf->Ln();
91$pdf->Ln();
92
93$pdf->SetFont($fontFamily, 'B', $fontSize);
94
95if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false))
96{
97 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("BUYER_NAME", false)));
98 $pdf->Ln();
99
100 if (CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false))
101 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false)));
102 $pdf->Ln();
103}
104
105$pdf->Ln();
106$pdf->Ln();
107$pdf->Ln();
108$pdf->Ln();
109$pdf->Ln();
110
111$pdf->SetFont($fontFamily, 'B', $fontSize*2);
112$pdf->Write(15, CSalePdf::prepareToPdf('Rechnung'));
113
114$pdf->Ln();
115$pdf->Ln();
116$pdf->Ln();
117
118
119
120$pdf->SetFont($fontFamily, 'B', $fontSize);
121
122$pdf->Cell(0.35*$width, 15, CSalePdf::prepareToPdf(sprintf(
123 'Rechnung Nr. %s',
124 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"]
125)));
126
127if (CSalePaySystemAction::GetParamValue("BUYER_ID", false))
128{
129 $pdf->Cell(0.35*$width, 15, CSalePdf::prepareToPdf(sprintf(
130 'Kunden-Nr.: %s',
131 CSalePaySystemAction::GetParamValue("BUYER_ID", false)
132 )));
133}
134
135$pdf->Cell(0, 15, CSalePdf::prepareToPdf(sprintf(
136 'Datum: %s',
137 CSalePaySystemAction::GetParamValue("DATE_INSERT", false)
138)), 0, 0, 'R');
139$pdf->Ln();
140
141if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false))
142{
143 $pdf->Cell(0, 15, CSalePdf::prepareToPdf(sprintf(
144 'Bezahlen bis: %s',
146 ?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)
147 )), 0, 0, 'R');
148 $pdf->Ln();
149}
150
151$pdf->SetFont($fontFamily, 'B', $fontSize-2);
152$pdf->Write(15, CSalePdf::prepareToPdf('Bitte bei Zahlungen und Schriftverkehr angeben!'));
153
154$pdf->Ln();
155$pdf->Ln();
156
157
158$pdf->SetFont($fontFamily, '', $fontSize);
159
160// items list
162 array("DATE_INSERT" => "ASC", "NAME" => "ASC"),
163 array("ORDER_ID" => $ORDER_ID),
164 false, false,
165 array("ID", "PRICE", "CURRENCY", "QUANTITY", "NAME", "VAT_RATE", "MEASURE_NAME")
166);
167if ($arBasket = $dbBasket->Fetch())
168{
169 $arColsCaption = array(
170 1 => CSalePdf::prepareToPdf('Pos.'),
171 CSalePdf::prepareToPdf('Leistung'),
172 CSalePdf::prepareToPdf('Anzahl'),
173 CSalePdf::prepareToPdf('Einheit'),
174 CSalePdf::prepareToPdf('Einzelpreis'),
175 CSalePdf::prepareToPdf('MwSt.'),
176 CSalePdf::prepareToPdf('Gesamtpreis')
177 );
178 $arCells = array();
179 $arProps = array();
180 $arRowsWidth = array(1 => 0, 0, 0, 0, 0, 0, 0);
181
182 for ($i = 1; $i <= 7; $i++)
183 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arColsCaption[$i]));
184
185 $n = 0;
186 $sum = 0.00;
187 $vat = 0;
188 $vats = array();
189 do
190 {
191 // props in product basket
192 $arProdProps = array();
193 $dbBasketProps = CSaleBasket::GetPropsList(
194 array("SORT" => "ASC", "ID" => "DESC"),
195 array(
196 "BASKET_ID" => $arBasket["ID"],
197 "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")
198 ),
199 false,
200 false,
201 array("ID", "BASKET_ID", "NAME", "VALUE", "CODE", "SORT")
202 );
203 while ($arBasketProps = $dbBasketProps->GetNext())
204 {
205 if (!empty($arBasketProps) && $arBasketProps["VALUE"] != "")
206 $arProdProps[] = $arBasketProps;
207 }
208 $arBasket["PROPS"] = $arProdProps;
209
210 // @TODO: replace with real vatless price
211 if (isset($arBasket['VAT_INCLUDED']) && $arBasket['VAT_INCLUDED'] === 'Y')
212 $arBasket["VATLESS_PRICE"] = roundEx($arBasket["PRICE"] / (1 + $arBasket["VAT_RATE"]), SALE_VALUE_PRECISION);
213 else
214 $arBasket["VATLESS_PRICE"] = $arBasket["PRICE"];
215
216 $productName = $arBasket["NAME"];
217 if ($productName == "OrderDelivery")
218 $productName = "Schifffahrt";
219 else if ($productName == "OrderDiscount")
220 $productName = "Rabatt";
221
222 $arCells[++$n] = array(
224 CSalePdf::prepareToPdf($productName),
225 CSalePdf::prepareToPdf(roundEx($arBasket["QUANTITY"], SALE_VALUE_PRECISION)),
226 CSalePdf::prepareToPdf($arBasket["MEASURE_NAME"] ? $arBasket["MEASURE_NAME"] : 'St.'),
227 CSalePdf::prepareToPdf(SaleFormatCurrency($arBasket["VATLESS_PRICE"], $arBasket["CURRENCY"], false)),
228 CSalePdf::prepareToPdf(roundEx($arBasket["VAT_RATE"]*100, SALE_VALUE_PRECISION)."%"),
230 $arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"],
231 $arBasket["CURRENCY"],
232 false
233 ))
234 );
235
236 $arProps[$n] = array();
237 foreach ($arBasket["PROPS"] as $vv)
238 $arProps[$n][] = CSalePdf::prepareToPdf(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
239
240 for ($i = 1; $i <= 7; $i++)
241 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arCells[$n][$i]));
242
243 $sum += doubleval($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"]);
244 $vat = max($vat, $arBasket["VAT_RATE"]);
245 if ($arBasket["VAT_RATE"] > 0)
246 {
247 if (!isset($vats[$arBasket["VAT_RATE"]]))
248 $vats[$arBasket["VAT_RATE"]] = 0;
249 $vats[$arBasket["VAT_RATE"]] += ($arBasket["PRICE"] - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
250 }
251 }
252 while ($arBasket = $dbBasket->Fetch());
253
254 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"]) > 0)
255 {
256 $arDelivery_tmp = CSaleDelivery::GetByID($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DELIVERY_ID"]);
257
258 $sDeliveryItem = "Schifffahrt";
259 if ($arDelivery_tmp["NAME"] <> '')
260 $sDeliveryItem .= sprintf(" (%s)", $arDelivery_tmp["NAME"]);
261 $arCells[++$n] = array(
263 CSalePdf::prepareToPdf($sDeliveryItem),
267 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat),
268 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
269 false
270 )),
273 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat),
274 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
275 false
276 ))
277 );
278
279 for ($i = 1; $i <= 7; $i++)
280 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arCells[$n][$i]));
281
282 $sum += roundEx(
283 doubleval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat)),
285 );
286
287 if ($vat > 0)
288 $vats[$vat] += roundEx(
289 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] * $vat / (1 + $vat),
291 );
292 }
293
294 $items = $n;
295
296 if ($sum < $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"])
297 {
298 $arCells[++$n] = array(
299 1 => null,
300 null,
301 null,
302 null,
303 null,
304 CSalePdf::prepareToPdf("Nettobetrag:"),
305 CSalePdf::prepareToPdf(SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false))
306 );
307
308 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
309 }
310
311 if (!empty($vats))
312 {
313 // @TODO: remove on real vatless price implemented
314 $delta = intval(roundEx(
315 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum - array_sum($vats),
317 ) * pow(10, SALE_VALUE_PRECISION));
318 if ($delta)
319 {
320 $vatRates = array_keys($vats);
321 rsort($vatRates);
322
323 while (abs($delta) > 0)
324 {
325 foreach ($vatRates as $vatRate)
326 {
327 $vats[$vatRate] += abs($delta)/$delta / pow(10, SALE_VALUE_PRECISION);
328 $delta -= abs($delta)/$delta;
329
330 if ($delta == 0)
331 break 2;
332 }
333 }
334 }
335
336 foreach ($vats as $vatRate => $vatSum)
337 {
338 $arCells[++$n] = array(
339 1 => null,
340 null,
341 null,
342 null,
343 null,
345 "zzgl. %s%% MwSt:",
346 roundEx($vatRate * 100, SALE_VALUE_PRECISION)
347 )),
349 $vatSum,
350 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
351 false
352 ))
353 );
354
355 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
356 }
357 }
358 else
359 {
360 $dbTaxList = CSaleOrderTax::GetList(
361 array("APPLY_ORDER" => "ASC"),
362 array("ORDER_ID" => $ORDER_ID)
363 );
364
365 while ($arTaxList = $dbTaxList->Fetch())
366 {
367 $arCells[++$n] = array(
368 1 => null,
369 null,
370 null,
371 null,
372 null,
374 "%s%s%s:",
375 ($arTaxList["IS_IN_PRICE"] == "Y") ? "inkl." : "zzgl.",
376 sprintf(' %s%% ', roundEx($arTaxList["VALUE"], SALE_VALUE_PRECISION)),
377 $arTaxList["TAX_NAME"]
378 )),
380 $arTaxList["VALUE_MONEY"],
381 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
382 false
383 ))
384 );
385
386 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
387 }
388 }
389
390 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"]) > 0)
391 {
392 $arCells[++$n] = array(
393 1 => null,
394 null,
395 null,
396 null,
397 null,
398 CSalePdf::prepareToPdf("Payment made:"),
400 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"],
401 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
402 false
403 ))
404 );
405
406 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
407 }
408
409 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
410 {
411 $arCells[++$n] = array(
412 1 => null,
413 null,
414 null,
415 null,
416 null,
417 CSalePdf::prepareToPdf("Rabatt:"),
419 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"],
420 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
421 false
422 ))
423 );
424
425 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
426 }
427
428 $arCells[++$n] = array(
429 1 => null,
430 null,
431 null,
432 null,
433 null,
434 CSalePdf::prepareToPdf("Gesamtbetrag:"),
436 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
437 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
438 false
439 ))
440 );
441
442 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
443
444 for ($i = 1; $i <= 7; $i++)
445 $arRowsWidth[$i] += 10;
446 if ($vat <= 0)
447 $arRowsWidth[6] = 0;
448 $arRowsWidth[2] = $width - (array_sum($arRowsWidth)-$arRowsWidth[2]);
449}
450$pdf->Ln();
451
452$x0 = $pdf->GetX();
453$y0 = $pdf->GetY();
454
455for ($i = 1; $i <= 7; $i++)
456{
457 if ($vat > 0 || $i != 6)
458 $pdf->Cell($arRowsWidth[$i], 20, $arColsCaption[$i], 0, 0, 'C');
459 ${"x$i"} = $pdf->GetX();
460}
461
462$pdf->Ln();
463
464$y5 = $pdf->GetY();
465
466$pdf->Line($x0, $y0, $x7, $y0);
467for ($i = 0; $i <= 7; $i++)
468{
469 if ($vat > 0 || $i != 6)
470 $pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
471}
472$pdf->Line($x0, $y5, $x7, $y5);
473
475for ($n = 1; $n <= $rowsCnt; $n++)
476{
477 $arRowsWidth_tmp = $arRowsWidth;
478 $accumulated = 0;
479 for ($j = 1; $j <= 7; $j++)
480 {
481 if (is_null($arCells[$n][$j]))
482 {
483 $accumulated += $arRowsWidth_tmp[$j];
484 $arRowsWidth_tmp[$j] = null;
485 }
486 else
487 {
488 $arRowsWidth_tmp[$j] += $accumulated;
489 $accumulated = 0;
490 }
491 }
492
493 $x0 = $pdf->GetX();
494 $y0 = $pdf->GetY();
495
496 $pdf->SetFont($fontFamily, '', $fontSize);
497
498 if (!is_null($arCells[$n][2]))
499 {
500 $text = $arCells[$n][2];
501 $cellWidth = $arRowsWidth_tmp[2];
502 }
503 else
504 {
505 $text = $arCells[$n][6];
506 $cellWidth = $arRowsWidth_tmp[6];
507 }
508
509 for ($l = 0; $pdf->GetStringWidth($text) > 0; $l++)
510 {
511 list($string, $text) = $pdf->splitString($text, $cellWidth-5);
512
513 if (!is_null($arCells[$n][1]))
514 $pdf->Cell($arRowsWidth_tmp[1], 15, ($l == 0) ? $arCells[$n][1] : '', 0, 0, 'C');
515 if ($l == 0)
516 $x1 = $pdf->GetX();
517
518 if (!is_null($arCells[$n][2]))
519 $pdf->Cell($arRowsWidth_tmp[2], 15, $string);
520 if ($l == 0)
521 $x2 = $pdf->GetX();
522
523 if (!is_null($arCells[$n][3]))
524 $pdf->Cell($arRowsWidth_tmp[3], 15, ($l == 0) ? $arCells[$n][3] : '', 0, 0, 'R');
525 if ($l == 0)
526 $x3 = $pdf->GetX();
527
528 if (!is_null($arCells[$n][4]))
529 $pdf->Cell($arRowsWidth_tmp[4], 15, ($l == 0) ? $arCells[$n][4] : '', 0, 0, 'R');
530 if ($l == 0)
531 $x4 = $pdf->GetX();
532
533 if (!is_null($arCells[$n][5]))
534 $pdf->Cell($arRowsWidth_tmp[5], 15, ($l == 0) ? $arCells[$n][5] : '', 0, 0, 'R');
535 if ($l == 0)
536 $x5 = $pdf->GetX();
537
538 if (!is_null($arCells[$n][6])) {
539 if (is_null($arCells[$n][2]))
540 $pdf->Cell($arRowsWidth_tmp[6], 15, $string, 0, 0, 'R');
541 else if ($vat > 0)
542 $pdf->Cell($arRowsWidth_tmp[6], 15, ($l == 0) ? $arCells[$n][6] : '', 0, 0, 'R');
543 }
544 if ($l == 0)
545 $x6 = $pdf->GetX();
546
547 if (!is_null($arCells[$n][7]))
548 $pdf->Cell($arRowsWidth_tmp[7], 15, ($l == 0) ? $arCells[$n][7] : '', 0, 0, 'R');
549 if ($l == 0)
550 $x7 = $pdf->GetX();
551
552 $pdf->Ln();
553 }
554
555 if (isset($arProps[$n]) && is_array($arProps[$n]))
556 {
557 $pdf->SetFont($fontFamily, '', $fontSize-2);
558 foreach ($arProps[$n] as $property)
559 {
560 $pdf->Cell($arRowsWidth_tmp[1], 12, '');
561 $pdf->Cell($arRowsWidth_tmp[2], 12, $property);
562 $pdf->Cell($arRowsWidth_tmp[3], 12, '');
563 $pdf->Cell($arRowsWidth_tmp[4], 12, '');
564 $pdf->Cell($arRowsWidth_tmp[5], 12, '');
565 if ($vat > 0)
566 $pdf->Cell($arRowsWidth_tmp[6], 12, '');
567 $pdf->Cell($arRowsWidth_tmp[7], 12, '', 0, 1);
568 }
569 }
570
571 $y5 = $pdf->GetY();
572
573 if ($y0 > $y5)
574 $y0 = $margin['top'];
575 for ($i = (is_null($arCells[$n][1])) ? 6 : 0; $i <= 7; $i++)
576 {
577 if ($vat > 0 || $i != 5)
578 $pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
579 }
580
581 $pdf->Line((!is_null($arCells[$n][1])) ? $x0 : $x6, $y5, $x7, $y5);
582}
583$pdf->Ln();
584$pdf->Ln();
585$pdf->Ln();
586
587
588$pdf->SetFont($fontFamily, 'B', $fontSize);
589
590if (CSalePaySystemAction::GetParamValue("COMMENT1", false) || CSalePaySystemAction::GetParamValue("COMMENT2", false))
591{
592 $pdf->SetFont($fontFamily, '', $fontSize);
593
594 if (CSalePaySystemAction::GetParamValue("COMMENT1", false))
595 {
596 $pdf->Write(15, HTMLToTxt(preg_replace(
597 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
599 ), '', array(), 0));
600 $pdf->Ln();
601 $pdf->Ln();
602 }
603
604 if (CSalePaySystemAction::GetParamValue("COMMENT2", false))
605 {
606 $pdf->Write(15, HTMLToTxt(preg_replace(
607 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
609 ), '', array(), 0));
610 $pdf->Ln();
611 $pdf->Ln();
612 }
613}
614
615$pdf->Ln();
616
617if (!$blank && CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false))
618{
619 list($stampHeight, $stampWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false));
620
621 if ($stampHeight && $stampWidth)
622 {
623 if ($stampHeight > 120 || $stampWidth > 120)
624 {
625 $ratio = 120 / max($stampHeight, $stampWidth);
626 $stampHeight = $ratio * $stampHeight;
627 $stampWidth = $ratio * $stampWidth;
628 }
629
630 $pdf->Image(
631 CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false),
632 $margin['left']+40, $pdf->GetY(),
633 $stampWidth, $stampHeight
634 );
635 }
636}
637
638if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
639{
640 $isDirSign = false;
641 if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false))
642 {
643 list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false));
644
645 if ($signHeight && $signWidth)
646 {
647 $ratio = min(37.5/$signHeight, 150/$signWidth);
648 $signHeight = $ratio * $signHeight;
649 $signWidth = $ratio * $signWidth;
650
651 $isDirSign = true;
652 }
653 }
654
655 $sellerDirPos = CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false));
656 if ($isDirSign && $pdf->GetStringWidth($sellerDirPos) <= 160)
657 $pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
658 $pdf->MultiCell(150, 15, $sellerDirPos, 0, 'L');
659 $pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);
660
661 if ($isDirSign)
662 {
663 $pdf->Image(
664 CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false),
665 $pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
666 $signWidth, $signHeight
667 );
668 }
669
670 $x1 = $pdf->GetX();
671 $pdf->Cell(160, 15, '');
672 $x2 = $pdf->GetX();
673
674 if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false))
675 $pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_DIR", false).')'));
676 $pdf->Ln();
677
678 $y2 = $pdf->GetY();
679 $pdf->Line($x1, $y2, $x2, $y2);
680
681 $pdf->Ln();
682}
683
684if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
685{
686 $isAccSign = false;
687 if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false))
688 {
689 list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false));
690
691 if ($signHeight && $signWidth)
692 {
693 $ratio = min(37.5/$signHeight, 150/$signWidth);
694 $signHeight = $ratio * $signHeight;
695 $signWidth = $ratio * $signWidth;
696
697 $isAccSign = true;
698 }
699 }
700
701 $sellerAccPos = CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false));
702 if ($isAccSign && $pdf->GetStringWidth($sellerAccPos) <= 160)
703 $pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
704 $pdf->MultiCell(150, 15, $sellerAccPos, 0, 'L');
705 $pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);
706
707 if ($isAccSign)
708 {
709 $pdf->Image(
710 CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false),
711 $pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
712 $signWidth, $signHeight
713 );
714 }
715
716 $x1 = $pdf->GetX();
717 $pdf->Cell((CSalePaySystemAction::GetParamValue("SELLER_DIR", false)) ? $x2-$x1 : 160, 15, '');
718 $x2 = $pdf->GetX();
719
720 if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false))
721 $pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_ACC", false).')'));
722 $pdf->Ln();
723
724 $y2 = $pdf->GetY();
725 $pdf->Line($x1, $y2, $x2, $y2);
726}
727
728$pdf->Ln();
729$pdf->Ln();
730$pdf->Ln();
731
732
733$pdf->SetFont($fontFamily, '', $fontSize-2);
734
737
739
740if ($sellerName)
742if ($sellerAddr)
744
745if (!empty($sellerData))
746{
747 $pdf->Cell(0, 15, CSalePdf::prepareToPdf(join(' - ', $sellerData)), 0, 0, 'C');
748 $pdf->Ln();
749}
750
751
754
756
757if ($sellerPhone)
758 $sellerData[] = sprintf('Telefon: %s', $sellerPhone);
759if ($sellerEmail)
760 $sellerData[] = sprintf('Mail: %s', $sellerEmail);
761
762if (!empty($sellerData))
763{
764 $pdf->Cell(0, 15, CSalePdf::prepareToPdf(join(' - ', $sellerData)), 0, 0, 'C');
765 $pdf->Ln();
766}
767
768
774
776
777if ($bankAccNo)
778 $bankData[] = sprintf('Konto Nr.: %s', $bankAccNo);
779if ($bankBlz)
780 $bankData[] = sprintf('BLZ: %s', $bankBlz);
781if ($bankIban)
782 $bankData[] = sprintf('IBAN: %s', $bankIban);
783if ($bankSwift)
784 $bankData[] = sprintf('BIC/SWIFT: %s', $bankSwift);
785if ($bank)
786 $bankData[] = $bank;
787
788if (!empty($bankData))
789{
790 $pdf->Cell(0, 15, CSalePdf::prepareToPdf(join(' - ', $bankData)), 0, 0, 'C');
791 $pdf->Ln();
792}
793
794
799
801
802if ($sellerEuInn)
803 $sellerData[] = sprintf('USt-IdNr.: %s', $sellerEuInn);
804if ($sellerInn)
805 $sellerData[] = sprintf('Steuernummer: %s', $sellerInn);
806if ($sellerReg)
808if ($sellerDir)
810
811if (!empty($sellerData))
812{
813 $pdf->Cell(0, 15, CSalePdf::prepareToPdf(join(' - ', $sellerData)), 0, 0, 'C');
814 $pdf->Ln();
815}
816
817
818$dest = 'I';
819if ($_REQUEST['GET_CONTENT'] == 'Y')
820 $dest = 'S';
821else if ($_REQUEST['DOWNLOAD'] == 'Y')
822 $dest = 'D';
823
824return $pdf->Output(
825 sprintf(
826 'Rechnung Nr. %s (Datum %s).pdf',
827 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"],
828 ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')
829 ), $dest
830);
831?>
$sum
Определения checkout.php:6
static GetByID($ID)
Определения delivery.php:249
static GetParamValue($key, $defaultValue=null)
Определения pay_system_action.php:76
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения basket.php:33
static GetPropsList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения basket.php:317
static GetList($arOrder=array("TAX_NAME"=> "ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения order_tax.php:7
Определения pdf.php:312
static isPdfAvailable()
Определения pdf.php:316
static prepareToPdf($string)
Определения pdf.php:324
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
const FORMAT_DATE
Определения include.php:63
$l
Определения options.php:783
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
Определения tools.php:724
roundEx($value, $prec=0)
Определения tools.php:4635
HTMLToTxt($str, $strSiteUrl="", $aDelete=[], $maxlen=70)
Определения tools.php:2587
$delta
Определения prolog_main_admin.php:363
die
Определения quickway.php:367
$text
Определения template_pdf.php:79
for( $i=0, $max=count( $arBasketIDs);$i< $max;$i++) if($arOrder['DELIVERY_VAT_RATE'] > 0) if(is_array( $arBasketOrder) &&!empty( $arBasketOrder)) if(floatval($arOrder["DISCOUNT_VALUE"]) > 0) $arTaxList
Определения factura.php:640
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$bankData
Определения html.php:597
$ORDER_ID
Определения html.php:2
$pageWidth
Определения html.php:24
if( $arBasket=$dbBasket->Fetch()) if($vat > 0) $rowsCnt
Определения html.php:430
$sellerAddr
Определения html.php:558
$width
Определения html.php:68
$sellerInn
Определения html.php:618
$bankSwift
Определения html.php:594
if(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) $dbBasket
Определения html.php:162
$sellerDir
Определения html.php:620
if(!empty($sellerData)) $bankAccNo
Определения html.php:591
if(!empty($bankData)) $sellerEuInn
Определения html.php:617
$bank
Определения html.php:595
$bankBlz
Определения html.php:592
if(CSalePaySystemAction::GetParamValue('BACKGROUND', false)) $margin
Определения html.php:61
$pageHeight
Определения html.php:25
$sellerData
Определения html.php:560
$bankIban
Определения html.php:593
for($n=1; $n<=$rowsCnt; $n++) if(CSalePaySystemAction::GetParamValue("COMMENT1", false)||CSalePaySystemAction::GetParamValue("COMMENT2", false)) if(! $blank) if(CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false)) if(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false)) $sellerName
Определения html.php:557
$sellerEmail
Определения html.php:575
$sellerReg
Определения html.php:619
if(!empty($sellerData)) $sellerPhone
Определения html.php:574
$logoWidth
Определения pdf.php:49
$y5
Определения pdf.php:464
$logoHeight
Определения pdf.php:48
if(!empty($sellerData)) $dest
Определения pdf.php:818
$fontSize
Определения pdf.php:30
$pdf
Определения pdf.php:13
$arPaySysAction["ENCODING"]
Определения pdf.php:2
$fontFamily
Определения pdf.php:29
$x0
Определения pdf.php:452
$seller
Определения pdf.php:78
$y0
Определения pdf.php:47
$vat
Определения template.php:273
$arCells
Определения template.php:223
$items
Определения template.php:224
SaleFormatCurrency($fSum, $strCurrency, $OnlyValue=false, $withoutFormat=false)
Определения include.php:142
const SALE_VALUE_PRECISION
Определения include.php:46
$x4
Определения pdf.php:128
$y2
Определения pdf.php:144
$x2
Определения pdf.php:124
$x3
Определения pdf.php:126
$isAccSign
Определения pdf.php:601
$GLOBALS['_____370096793']
Определения update_client.php:1
$n
Определения update_log.php:107
$arRowsWidth
Определения template_pdf.php:446
$blank
Определения template_pdf.php:11
$vatRates
Определения yandex_detail.php:156
$x1
Определения template_pdf.php:419