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
48$y0 = $pdf->GetY();
51
52if (CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false))
53{
54 list($imageHeight, $imageWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false));
55
56 $imgDpi = intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96;
57 $imgZoom = 96 / $imgDpi;
58
59 $logoHeight = $imageHeight * $imgZoom + 5;
60 $logoWidth = $imageWidth * $imgZoom + 5;
61
62 $pdf->Image(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false), $pdf->GetX(), $pdf->GetY(), -$imgDpi, -$imgDpi);
63}
64
65$pdf->SetFont($fontFamily, 'B', $fontSize);
66
67$pdf->SetX($pdf->GetX() + $logoWidth);
68$pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_NAME", false)));
69$pdf->Ln();
70
71if (CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false))
72{
73 $pdf->SetX($pdf->GetX() + $logoWidth);
74 $pdf->MultiCell(0, 15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false)), 0, 'L');
75}
76
77if (CSalePaySystemAction::GetParamValue("SELLER_PHONE", false))
78{
79 $pdf->SetX($pdf->GetX() + $logoWidth);
80 $pdf->Write(15, CSalePdf::prepareToPdf(sprintf("Tel.: %s", CSalePaySystemAction::GetParamValue("SELLER_PHONE", false))));
81 $pdf->Ln();
82}
83
84$pdf->Ln();
85$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
86$pdf->Ln();
87
88
89$pdf->SetFont($fontFamily, 'B', $fontSize*2);
90$pdf->Cell(0, 15, CSalePdf::prepareToPdf('Factura'), 0, 0, 'C');
91
92$pdf->Ln();
93$pdf->Ln();
94$pdf->Ln();
95
96$pdf->SetFont($fontFamily, 'B', $fontSize);
97
98if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false))
99{
100 $pdf->Write(15, CSalePdf::prepareToPdf('Para'));
101}
102
103$pdf->SetFont($fontFamily, '', $fontSize);
104
105$invoiceNo = CSalePdf::prepareToPdf($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"]);
106$invoiceNoWidth = $pdf->GetStringWidth($invoiceNo);
107
110
113 ?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)
114);
116
118
119$pdf->Cell(0, 15, $invoiceNo, 0, 0, 'R');
120
121$pdf->SetFont($fontFamily, 'B', $fontSize);
122
124$titleWidth = $pdf->GetStringWidth($title);
125$pdf->SetX($pdf->GetX() - $invoiceInfoWidth - $titleWidth - 6);
126$pdf->Write(15, $title, 0, 0, 'R');
127$pdf->Ln();
128
129$pdf->SetFont($fontFamily, '', $fontSize);
130
131if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false))
132{
133 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("BUYER_NAME", false)));
134}
135
136$pdf->Cell(0, 15, $invoiceDate, 0, 0, 'R');
137
138$pdf->SetFont($fontFamily, 'B', $fontSize);
139
140$title = CSalePdf::prepareToPdf('Girada el: ');
141$titleWidth = $pdf->GetStringWidth($title);
142$pdf->SetX($pdf->GetX() - $invoiceInfoWidth - $titleWidth - 6);
143$pdf->Write(15, $title, 0, 0, 'R');
144$pdf->Ln();
145
146$pdf->SetFont($fontFamily, '', $fontSize);
147
148if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false))
149{
150 if (CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false))
151 {
152 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false)));
153 }
154}
155
156if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false))
157{
158 $pdf->Cell(0, 15, $invoiceDueDate, 0, 0, 'R');
159
160 $pdf->SetFont($fontFamily, 'B', $fontSize);
161
162 $title = CSalePdf::prepareToPdf('Para pagarse el: ');
163 $titleWidth = $pdf->GetStringWidth($title);
164 $pdf->SetX($pdf->GetX() - $invoiceInfoWidth - $titleWidth - 6);
165 $pdf->Write(15, $title, 0, 0, 'R');
166}
167
168$pdf->Ln();
169$pdf->Ln();
170$pdf->Ln();
171
172
173$pdf->SetFont($fontFamily, '', $fontSize);
174
175// items list
177 array("DATE_INSERT" => "ASC", "NAME" => "ASC"),
178 array("ORDER_ID" => $ORDER_ID),
179 false, false,
180 array("ID", "PRICE", "CURRENCY", "QUANTITY", "NAME", "VAT_RATE", "MEASURE_NAME")
181);
182if ($arBasket = $dbBasket->Fetch())
183{
184 $arColsCaption = array(
185 1 => CSalePdf::prepareToPdf('#'),
186 CSalePdf::prepareToPdf('Artculo / Descripcin'),
188 CSalePdf::prepareToPdf('Unidades'),
189 CSalePdf::prepareToPdf('Precio unitario'),
190 CSalePdf::prepareToPdf('Tasa impositiva'),
192 );
193 $arCells = array();
194 $arProps = array();
195 $arRowsWidth = array(1 => 0, 0, 0, 0, 0, 0, 0);
196
197 for ($i = 1; $i <= 7; $i++)
198 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arColsCaption[$i]));
199
200 $n = 0;
201 $sum = 0.00;
202 $vat = 0;
203 $vats = array();
204 do
205 {
206 // props in product basket
207 $arProdProps = array();
208 $dbBasketProps = CSaleBasket::GetPropsList(
209 array("SORT" => "ASC", "ID" => "DESC"),
210 array(
211 "BASKET_ID" => $arBasket["ID"],
212 "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID")
213 ),
214 false,
215 false,
216 array("ID", "BASKET_ID", "NAME", "VALUE", "CODE", "SORT")
217 );
218 while ($arBasketProps = $dbBasketProps->GetNext())
219 {
220 if (!empty($arBasketProps) && $arBasketProps["VALUE"] != "")
221 $arProdProps[] = $arBasketProps;
222 }
223 $arBasket["PROPS"] = $arProdProps;
224
225 // @TODO: replace with real vatless price
226 if (isset($arBasket['VAT_INCLUDED']) && $arBasket['VAT_INCLUDED'] === 'Y')
227 $arBasket["VATLESS_PRICE"] = roundEx($arBasket["PRICE"] / (1 + $arBasket["VAT_RATE"]), SALE_VALUE_PRECISION);
228 else
229 $arBasket["VATLESS_PRICE"] = $arBasket["PRICE"];
230
231 $productName = $arBasket["NAME"];
232 if ($productName == "OrderDelivery")
233 $productName = "Envo";
234 else if ($productName == "OrderDiscount")
235 $productName = "Descuento";
236
237 $arCells[++$n] = array(
239 CSalePdf::prepareToPdf($productName),
240 CSalePdf::prepareToPdf(roundEx($arBasket["QUANTITY"], SALE_VALUE_PRECISION)),
241 CSalePdf::prepareToPdf($arBasket["MEASURE_NAME"] ? $arBasket["MEASURE_NAME"] : 'pza'),
242 CSalePdf::prepareToPdf(SaleFormatCurrency($arBasket["VATLESS_PRICE"], $arBasket["CURRENCY"], false)),
243 CSalePdf::prepareToPdf(roundEx($arBasket["VAT_RATE"]*100, SALE_VALUE_PRECISION)."%"),
245 $arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"],
246 $arBasket["CURRENCY"],
247 false
248 ))
249 );
250
251 $arProps[$n] = array();
252 foreach ($arBasket["PROPS"] as $vv)
253 $arProps[$n][] = CSalePdf::prepareToPdf(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
254
255 for ($i = 1; $i <= 7; $i++)
256 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arCells[$n][$i]));
257
258 $sum += doubleval($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"]);
259 $vat = max($vat, $arBasket["VAT_RATE"]);
260 if ($arBasket["VAT_RATE"] > 0)
261 {
262 if (!isset($vats[$arBasket["VAT_RATE"]]))
263 $vats[$arBasket["VAT_RATE"]] = 0;
264 $vats[$arBasket["VAT_RATE"]] += ($arBasket["PRICE"] - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
265 }
266 }
267 while ($arBasket = $dbBasket->Fetch());
268
269 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"]) > 0)
270 {
271 $arDelivery_tmp = CSaleDelivery::GetByID($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DELIVERY_ID"]);
272
273 $sDeliveryItem = "Envo";
274 if ($arDelivery_tmp["NAME"] <> '')
275 $sDeliveryItem .= sprintf(" (%s)", $arDelivery_tmp["NAME"]);
276 $arCells[++$n] = array(
278 CSalePdf::prepareToPdf($sDeliveryItem),
282 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat),
283 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
284 false
285 )),
288 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat),
289 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
290 false
291 ))
292 );
293
294 for ($i = 1; $i <= 7; $i++)
295 $arRowsWidth[$i] = max($arRowsWidth[$i], $pdf->GetStringWidth($arCells[$n][$i]));
296
297 $sum += roundEx(
298 doubleval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] / (1 + $vat)),
300 );
301
302 if ($vat > 0)
303 $vats[$vat] += roundEx(
304 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE_DELIVERY"] * $vat / (1 + $vat),
306 );
307 }
308
309 $items = $n;
310
311 if ($sum < $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"])
312 {
313 $arCells[++$n] = array(
314 1 => null,
315 null,
316 null,
317 null,
318 null,
319 CSalePdf::prepareToPdf("Sub Total:"),
320 CSalePdf::prepareToPdf(SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false))
321 );
322
323 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
324 }
325
326
327 if (!empty($vats))
328 {
329 // @TODO: remove on real vatless price implemented
330 $delta = intval(roundEx(
331 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum - array_sum($vats),
333 ) * pow(10, SALE_VALUE_PRECISION));
334 if ($delta)
335 {
336 $vatRates = array_keys($vats);
337 rsort($vatRates);
338
339 while (abs($delta) > 0)
340 {
341 foreach ($vatRates as $vatRate)
342 {
343 $vats[$vatRate] += abs($delta)/$delta / pow(10, SALE_VALUE_PRECISION);
344 $delta -= abs($delta)/$delta;
345
346 if ($delta == 0)
347 break 2;
348 }
349 }
350 }
351
352 foreach ($vats as $vatRate => $vatSum)
353 {
354 $arCells[++$n] = array(
355 1 => null,
356 null,
357 null,
358 null,
359 null,
361 "Impuesto (%s%%):",
362 roundEx($vatRate * 100, SALE_VALUE_PRECISION)
363 )),
365 $vatSum,
366 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
367 false
368 ))
369 );
370
371 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
372 }
373 }
374 else
375 {
376 $dbTaxList = CSaleOrderTax::GetList(
377 array("APPLY_ORDER" => "ASC"),
378 array("ORDER_ID" => $ORDER_ID)
379 );
380
381 while ($arTaxList = $dbTaxList->Fetch())
382 {
383 $arCells[++$n] = array(
384 1 => null,
385 null,
386 null,
387 null,
388 null,
390 "%s%s%s:",
391 ($arTaxList["IS_IN_PRICE"] == "Y") ? "Incluido " : "",
392 $arTaxList["TAX_NAME"],
393 sprintf(' (%s%%)', roundEx($arTaxList["VALUE"],SALE_VALUE_PRECISION))
394 )),
396 $arTaxList["VALUE_MONEY"],
397 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
398 false
399 ))
400 );
401
402 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
403 }
404 }
405
406 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"]) > 0)
407 {
408 $arCells[++$n] = array(
409 1 => null,
410 null,
411 null,
412 null,
413 null,
414 CSalePdf::prepareToPdf("Pago hecho:"),
416 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"],
417 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
418 false
419 ))
420 );
421
422 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
423 }
424
425 if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
426 {
427 $arCells[++$n] = array(
428 1 => null,
429 null,
430 null,
431 null,
432 null,
433 CSalePdf::prepareToPdf("Descuento:"),
435 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"],
436 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
437 false
438 ))
439 );
440
441 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
442 }
443
444 $arCells[++$n] = array(
445 1 => null,
446 null,
447 null,
448 null,
449 null,
450 CSalePdf::prepareToPdf("Total:"),
452 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
453 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
454 false
455 ))
456 );
457
458 $arRowsWidth[7] = max($arRowsWidth[7], $pdf->GetStringWidth($arCells[$n][7]));
459
460 for ($i = 1; $i <= 7; $i++)
461 $arRowsWidth[$i] += 10;
462 if ($vat <= 0)
463 $arRowsWidth[6] = 0;
464 $arRowsWidth[2] = $width - (array_sum($arRowsWidth)-$arRowsWidth[2]);
465}
466$pdf->Ln();
467
468$x0 = $pdf->GetX();
469$y0 = $pdf->GetY();
470
471for ($i = 1; $i <= 7; $i++)
472{
473 if ($vat > 0 || $i != 6)
474 $pdf->Cell($arRowsWidth[$i], 20, $arColsCaption[$i], 0, 0, 'C');
475 ${"x$i"} = $pdf->GetX();
476}
477
478$pdf->Ln();
479
480$y5 = $pdf->GetY();
481
482$pdf->Line($x0, $y0, $x7, $y0);
483for ($i = 0; $i <= 7; $i++)
484{
485 if ($vat > 0 || $i != 6)
486 $pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
487}
488$pdf->Line($x0, $y5, $x7, $y5);
489
491for ($n = 1; $n <= $rowsCnt; $n++)
492{
493 $arRowsWidth_tmp = $arRowsWidth;
494 $accumulated = 0;
495 for ($j = 1; $j <= 7; $j++)
496 {
497 if (is_null($arCells[$n][$j]))
498 {
499 $accumulated += $arRowsWidth_tmp[$j];
500 $arRowsWidth_tmp[$j] = null;
501 }
502 else
503 {
504 $arRowsWidth_tmp[$j] += $accumulated;
505 $accumulated = 0;
506 }
507 }
508
509 $x0 = $pdf->GetX();
510 $y0 = $pdf->GetY();
511
512 $pdf->SetFont($fontFamily, '', $fontSize);
513
514 if (!is_null($arCells[$n][2]))
515 {
516 $text = $arCells[$n][2];
517 $cellWidth = $arRowsWidth_tmp[2];
518 }
519 else
520 {
521 $text = $arCells[$n][6];
522 $cellWidth = $arRowsWidth_tmp[6];
523 }
524
525 for ($l = 0; $pdf->GetStringWidth($text) > 0; $l++)
526 {
527 list($string, $text) = $pdf->splitString($text, $cellWidth-5);
528
529 if (!is_null($arCells[$n][1]))
530 $pdf->Cell($arRowsWidth_tmp[1], 15, ($l == 0) ? $arCells[$n][1] : '', 0, 0, 'C');
531 if ($l == 0)
532 $x1 = $pdf->GetX();
533
534 if (!is_null($arCells[$n][2]))
535 $pdf->Cell($arRowsWidth_tmp[2], 15, $string);
536 if ($l == 0)
537 $x2 = $pdf->GetX();
538
539 if (!is_null($arCells[$n][3]))
540 $pdf->Cell($arRowsWidth_tmp[3], 15, ($l == 0) ? $arCells[$n][3] : '', 0, 0, 'R');
541 if ($l == 0)
542 $x3 = $pdf->GetX();
543
544 if (!is_null($arCells[$n][4]))
545 $pdf->Cell($arRowsWidth_tmp[4], 15, ($l == 0) ? $arCells[$n][4] : '', 0, 0, 'R');
546 if ($l == 0)
547 $x4 = $pdf->GetX();
548
549 if (!is_null($arCells[$n][5]))
550 $pdf->Cell($arRowsWidth_tmp[5], 15, ($l == 0) ? $arCells[$n][5] : '', 0, 0, 'R');
551 if ($l == 0)
552 $x5 = $pdf->GetX();
553
554 if (!is_null($arCells[$n][6])) {
555 if (is_null($arCells[$n][2]))
556 $pdf->Cell($arRowsWidth_tmp[6], 15, $string, 0, 0, 'R');
557 else if ($vat > 0)
558 $pdf->Cell($arRowsWidth_tmp[6], 15, ($l == 0) ? $arCells[$n][6] : '', 0, 0, 'R');
559 }
560 if ($l == 0)
561 $x6 = $pdf->GetX();
562
563 if (!is_null($arCells[$n][7]))
564 $pdf->Cell($arRowsWidth_tmp[7], 15, ($l == 0) ? $arCells[$n][7] : '', 0, 0, 'R');
565 if ($l == 0)
566 $x7 = $pdf->GetX();
567
568 $pdf->Ln();
569 }
570
571 if (isset($arProps[$n]) && is_array($arProps[$n]))
572 {
573 $pdf->SetFont($fontFamily, '', $fontSize-2);
574 foreach ($arProps[$n] as $property)
575 {
576 $pdf->Cell($arRowsWidth_tmp[1], 12, '');
577 $pdf->Cell($arRowsWidth_tmp[2], 12, $property);
578 $pdf->Cell($arRowsWidth_tmp[3], 12, '');
579 $pdf->Cell($arRowsWidth_tmp[4], 12, '');
580 $pdf->Cell($arRowsWidth_tmp[5], 12, '');
581 if ($vat > 0)
582 $pdf->Cell($arRowsWidth_tmp[6], 12, '');
583 $pdf->Cell($arRowsWidth_tmp[7], 12, '', 0, 1);
584 }
585 }
586
587 $y5 = $pdf->GetY();
588
589 if ($y0 > $y5)
590 $y0 = $margin['top'];
591 for ($i = (is_null($arCells[$n][1])) ? 6 : 0; $i <= 7; $i++)
592 {
593 if ($vat > 0 || $i != 5)
594 $pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
595 }
596
597 $pdf->Line((!is_null($arCells[$n][1])) ? $x0 : $x6, $y5, $x7, $y5);
598}
599$pdf->Ln();
600$pdf->Ln();
601$pdf->Ln();
602$pdf->Ln();
603
604
605$pdf->SetFont($fontFamily, 'B', $fontSize);
606
607if (CSalePaySystemAction::GetParamValue("COMMENT1", false) || CSalePaySystemAction::GetParamValue("COMMENT2", false))
608{
609 $pdf->Write(15, CSalePdf::prepareToPdf('Trminos y Condiciones'));
610 $pdf->Ln();
611
612 $pdf->SetFont($fontFamily, '', $fontSize);
613
614 if (CSalePaySystemAction::GetParamValue("COMMENT1", false))
615 {
616 $pdf->Write(15, HTMLToTxt(preg_replace(
617 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
619 ), '', array(), 0));
620 $pdf->Ln();
621 $pdf->Ln();
622 }
623
624 if (CSalePaySystemAction::GetParamValue("COMMENT2", false))
625 {
626 $pdf->Write(15, HTMLToTxt(preg_replace(
627 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
629 ), '', array(), 0));
630 $pdf->Ln();
631 $pdf->Ln();
632 }
633}
634
635$pdf->Ln();
636$pdf->Ln();
637$pdf->Ln();
638
639if (!$blank && CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false))
640{
641 list($stampHeight, $stampWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false));
642
643 if ($stampHeight && $stampWidth)
644 {
645 if ($stampHeight > 120 || $stampWidth > 120)
646 {
647 $ratio = 120 / max($stampHeight, $stampWidth);
648 $stampHeight = $ratio * $stampHeight;
649 $stampWidth = $ratio * $stampWidth;
650 }
651
652 $pdf->Image(
653 CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false),
654 $margin['left']+$width/2+45, $pdf->GetY(),
655 $stampWidth, $stampHeight
656 );
657 }
658}
659
660
661$y0 = $pdf->GetY();
662
664$bankRouteNo = CSalePaySystemAction::GetParamValue("SELLER_BANK_ROUTENO", false);
666
668{
669 $pdf->SetFont($fontFamily, 'B', $fontSize);
670
671 $pdf->Write(15, CSalePdf::prepareToPdf("Detalles bancarios"));
672 $pdf->Ln();
673
674 $pdf->SetFont($fontFamily, '', $fontSize);
675
676 $bankDetails = '';
677
678 if (CSalePaySystemAction::GetParamValue("SELLER_NAME", false))
679 {
680 $bankDetails .= CSalePdf::prepareToPdf(sprintf(
681 "Nombre de la cuenta: %s\n",
682 CSalePaySystemAction::GetParamValue("SELLER_NAME", false)
683 ));
684 }
685
686 $bankDetails .= CSalePdf::prepareToPdf(sprintf("# de la Cuenta: %s\n", $bankAccNo));
687
688 $bank = CSalePaySystemAction::GetParamValue("SELLER_BANK", false);
689 $bankAddr = CSalePaySystemAction::GetParamValue("SELLER_BANK_ADDR", false);
690 $bankPhone = CSalePaySystemAction::GetParamValue("SELLER_BANK_PHONE", false);
691
692 if ($bank || $bankAddr || $bankPhone)
693 {
694 $bankDetails .= CSalePdf::prepareToPdf("Nombre y direccin del banco: ");
695 if ($bank)
696 $bankDetails .= CSalePdf::prepareToPdf($bank);
697 $bankDetails .= CSalePdf::prepareToPdf("\n");
698
699 if ($bankAddr)
700 $bankDetails .= CSalePdf::prepareToPdf(sprintf("%s\n", $bankAddr));
701
702 if ($bankPhone)
703 {
704 $bankDetails .= CSalePdf::prepareToPdf(sprintf("%s\n", $bankPhone));
705 }
706 }
707
708 $bankDetails .= CSalePdf::prepareToPdf(sprintf("Nmero de enrutamiento del banco: %s\n", $bankRouteNo));
709 $bankDetails .= CSalePdf::prepareToPdf(sprintf("SWIFT del banco: %s\n", $bankSwift));
710
711 $pdf->MultiCell($width/2, 15, $bankDetails, 0, 'L');
712}
713
714$pdf->SetY($y0 + 15);
715if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
716{
717 if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false) || CSalePaySystemAction::GetParamValue("SELLER_DIR_SIGN", false))
718 {
719 $isDirSign = false;
720 if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false))
721 {
722 list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false));
723
724 if ($signHeight && $signWidth)
725 {
726 $ratio = min(37.5/$signHeight, 150/$signWidth);
727 $signHeight = $ratio * $signHeight;
728 $signWidth = $ratio * $signWidth;
729
730 $isDirSign = true;
731 }
732 }
733
734 if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false))
735 {
736 $pdf->SetX($pdf->GetX() + $width/2 + 15);
737 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_DIR", false)));
738 $pdf->Ln();
739 $pdf->Ln();
740 }
741
742 $pdf->SetX($pdf->GetX() + $width/2 + 15);
743 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false)));
744
745 $pdf->Cell(0, 15, '', 'B');
746
747 if ($isDirSign)
748 {
749 $pdf->Image(
750 CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false),
751 $pdf->GetX() - 150, $pdf->GetY() - $signHeight + 15,
752 $signWidth, $signHeight
753 );
754 }
755
756 $pdf->Ln();
757 $pdf->Ln();
758 }
759}
760
761if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
762{
763 if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false) || CSalePaySystemAction::GetParamValue("SELLER_ACC_SIGN", false))
764 {
765 $isAccSign = false;
766 if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false))
767 {
768 list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false));
769
770 if ($signHeight && $signWidth)
771 {
772 $ratio = min(37.5/$signHeight, 150/$signWidth);
773 $signHeight = $ratio * $signHeight;
774 $signWidth = $ratio * $signWidth;
775
776 $isAccSign = true;
777 }
778 }
779
780 if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false))
781 {
782 $pdf->SetX($pdf->GetX() + $width/2 + 15);
783 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC", false)));
784 $pdf->Ln();
785 $pdf->Ln();
786 }
787
788 $pdf->SetX($pdf->GetX() + $width/2 + 15);
789 $pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false)));
790
791 $pdf->Cell(0, 15, '', 'B');
792
793 if ($isAccSign)
794 {
795 $pdf->Image(
796 CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false),
797 $pdf->GetX() - 150, $pdf->GetY() - $signHeight + 15,
798 $signWidth, $signHeight
799 );
800 }
801
802 $pdf->Ln();
803 }
804}
805
806
807$dest = 'I';
808if ($_REQUEST['GET_CONTENT'] == 'Y')
809 $dest = 'S';
810else if ($_REQUEST['DOWNLOAD'] == 'Y')
811 $dest = 'D';
812
813return $pdf->Output(
814 sprintf(
815 'Invoice # %s (Issue Date %s).pdf',
816 $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"],
817 ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')
818 ), $dest
819);
820?>
$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
$invoiceDueDate
Определения template_pdf.php:172
$invoiceDate
Определения template_pdf.php:169
$invoiceDateWidth
Определения template_pdf.php:170
$invoiceInfoWidth
Определения template_pdf.php:178
$invoiceNo
Определения template_pdf.php:166
$invoiceDueDateWidth
Определения template_pdf.php:176
$text
Определения template_pdf.php:79
$invoiceNoWidth
Определения template_pdf.php:167
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
$ORDER_ID
Определения html.php:2
$pageWidth
Определения html.php:24
if( $arBasket=$dbBasket->Fetch()) if($vat > 0) $rowsCnt
Определения html.php:430
$width
Определения html.php:68
$bankSwift
Определения html.php:594
if(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) $dbBasket
Определения html.php:162
if(!empty($sellerData)) $bankAccNo
Определения html.php:591
$bank
Определения html.php:595
if(CSalePaySystemAction::GetParamValue('BACKGROUND', false)) $margin
Определения html.php:61
$pageHeight
Определения html.php:25
$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
$y0
Определения pdf.php:47
$vat
Определения template.php:273
$bankRouteNo
Определения template.php:566
$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
$titleWidth
Определения pdf.php:124
$title
Определения pdf.php:123
$x4
Определения pdf.php:128
$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