1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
template.php
См. документацию.
1<?
2if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
3 die();
4
6
7Loc::loadMessages(__FILE__);
8?>
9<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
10<html>
11<head>
12<title><?=Loc::getMessage('SALE_HPS_BILLBY_TITLE')?></title>
13<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET?>">
14<style type="text/css">
15 table { border-collapse: collapse; }
16 table.acc td { border: 1pt solid #000000; padding: 0 3pt; line-height: 21pt; }
17 table.it td { border: 1pt solid #000000; padding: 0 3pt; }
18 table.sign td { vertical-align: bottom; }
19 table.header td { padding: 0; vertical-align: top; }
20</style>
21</head>
22
23<?
24
25if ($_REQUEST['BLANK'] == 'Y')
26 $blank = true;
27
28$pageWidth = 595.28;
29$pageHeight = 841.89;
30
31$background = '#ffffff';
32if ($params['BILLBY_BACKGROUND'])
33{
34 $path = $params['BILLBY_BACKGROUND'];
35 if (intval($path) > 0)
36 {
37 if ($arFile = CFile::GetFileArray($path))
38 $path = $arFile['SRC'];
39 }
40
41 $backgroundStyle = $params['BILLBY_BACKGROUND_STYLE'];
42 if (!in_array($backgroundStyle, array('none', 'tile', 'stretch')))
43 $backgroundStyle = 'none';
44
45 if ($path)
46 {
47 switch ($backgroundStyle)
48 {
49 case 'none':
50 $background = "url('" . $path . "') 0 0 no-repeat";
51 break;
52 case 'tile':
53 $background = "url('" . $path . "') 0 0 repeat";
54 break;
55 case 'stretch':
56 $background = sprintf(
57 "url('%s') 0 0 repeat-y; background-size: %.02fpt %.02fpt",
59 );
60 break;
61 }
62 }
63}
64
66 'top' => intval($params['BILLBY_MARGIN_TOP'] ?: 15) * 72/25.4,
67 'right' => intval($params['BILLBY_MARGIN_RIGHT'] ?: 15) * 72/25.4,
68 'bottom' => intval($params['BILLBY_MARGIN_BOTTOM'] ?: 15) * 72/25.4,
69 'left' => intval($params['BILLBY_MARGIN_LEFT'] ?: 20) * 72/25.4
70);
71
72$width = $pageWidth - $margin['left'] - $margin['right'];
73
74?>
75
76<body style="margin: 0; padding: 0; background: <?=$background; ?>"<? if ($_REQUEST['PRINT'] == 'Y') { ?> onload="setTimeout(window.print, 0);"<? } ?>>
77
78<div style="margin: 0; padding: <?=join('pt ', $margin); ?>pt; width: <?=$width; ?>pt; background: <?=$background; ?>">
79
80<?if ($params['BILLBY_HEADER_SHOW'] == 'Y'):?>
81 <?
82 // region Seller info
83 $sellerInfo = '';
86 if ($params["SELLER_COMPANY_NAME"])
87 {
88 $sellerInfoName .= $params["SELLER_COMPANY_NAME"];
89 if (!empty($sellerInfoName))
91 }
92 unset($sellerInfoName);
94 if ($params['SELLER_COMPANY_INN'])
95 {
96 $sellerInfoTaxId .= Loc::getMessage('SALE_HPS_BILLBY_INN').': '.$params['SELLER_COMPANY_INN'];
97 if (!empty($sellerInfoTaxId))
99 }
100 unset($sellerInfoTaxId);
104 if ($params["SELLER_COMPANY_BANK_NAME"])
105 {
106 $sellerBankCity = '';
107 if ($params["SELLER_COMPANY_BANK_CITY"])
108 {
109 $sellerBankCity = $params["SELLER_COMPANY_BANK_CITY"];
110 if (is_array($sellerBankCity))
111 $sellerBankCity = implode(', ', $sellerBankCity);
112 else
113 $sellerBankCity = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerBankCity));
114 }
115 $sellerBank = sprintf(
116 "%s %s",
117 $params["SELLER_COMPANY_BANK_NAME"],
118 $sellerBankCity
119 );
120 $sellerRs = $params["SELLER_COMPANY_BANK_ACCOUNT"];
121 }
122 else
123 {
124 $rsPattern = '/\s*\d{10,100}\s*/';
125
126 $sellerBank = trim(preg_replace($rsPattern, ' ', $params["SELLER_COMPANY_BANK_ACCOUNT"]));
127
128 preg_match($rsPattern, $params["SELLER_COMPANY_BANK_ACCOUNT"], $matches);
129 $sellerRs = trim($matches[0]);
130 }
131 if (!empty($sellerRs))
132 {
133 $sellerRsPrefix = Loc::getMessage('SALE_HPS_BILLBY_SELLER_ACC_ABBR');
134 if (!empty($sellerRsPrefix))
135 $sellerRs = $sellerRsPrefix.' '.$sellerRs;
136 unset($sellerRsPrefix);
138 }
139 unset($sellerRs);
140 if (!empty($sellerBank))
141 {
142 if (!empty($sellerInfoBank))
143 $sellerInfoBank .= ', ';
145 }
146 unset($sellerBank);
147 if (!empty($params['SELLER_COMPANY_BANK_BIC']))
148 {
149 if (!empty($sellerInfoBank))
150 $sellerInfoBank .= ', ';
151 $sellerInfoBank .= Loc::getMessage('SALE_HPS_BILLBY_SELLER_BANK_BIK').' '.$params['SELLER_COMPANY_BANK_BIC'];
152 }
153 if (!empty($sellerInfoBank))
155 unset($sellerInfoBank);
157 if ($params['SELLER_COMPANY_ADDRESS'])
158 {
159 $sellerAddr = $params['SELLER_COMPANY_ADDRESS'];
160 if (is_array($sellerAddr))
161 $sellerAddr = implode(', ', $sellerAddr);
162 else
163 $sellerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerAddr));
164 if (!empty($sellerAddr))
165 $sellerInfoAddr .= Loc::getMessage('SALE_HPS_BILLBY_ADDR_TITLE').': '.$sellerAddr;
166 }
167 if ($params["SELLER_COMPANY_PHONE"])
168 {
169 if (!empty($sellerInfoAddr))
170 $sellerInfoAddr .= ', ';
171 $phoneTitle = Loc::getMessage('SALE_HPS_BILLBY_PHONE_TITLE');
172 if (!empty($phoneTitle))
173 $sellerInfoAddr .= $phoneTitle.' ';
174 $sellerInfoAddr .= $params["SELLER_COMPANY_PHONE"];
175 }
176 if (!empty($sellerInfoAddr))
178 unset($sellerInfoAddr);
179 if (!empty($sellerInfoRows))
180 $sellerInfo = implode('<br>', $sellerInfoRows);
181 unset($sellerInfoRows);
182 // endregion Seller info
183 ?>
184 <table class="header">
185 <tr>
186 <td><?= $sellerInfo ?></td>
187 <? if ($params["BILLBY_PATH_TO_LOGO"]) { ?>
188 <td style="padding-left: 5pt; padding-bottom: 5pt; ">
189 <? $imgParams = CFile::_GetImgParams($params['BILLBY_PATH_TO_LOGO']);
190 $dpi = intval($params['BILLBY_LOGO_DPI']) ?: 96;
191 $imgWidth = $imgParams['WIDTH'] * 96 / $dpi;
192 if ($imgWidth > $pageWidth)
193 $imgWidth = $pageWidth * 0.6;
194 ?>
195 <img src="<?=$imgParams['SRC']; ?>" width="<?=$imgWidth; ?>" />
196 </td>
197 <? } ?>
198 </tr>
199 </table>
201<br>
202<br>
203
204<table width="100%">
205 <colgroup>
206 <col width="50%">
207 <col width="0">
208 <col width="50%">
209 </colgroup>
210<?if ($params['BILLBY_HEADER']):?>
211 <?
212 $dateValue = $params["PAYMENT_DATE_INSERT"];
213 if ($dateValue instanceof \Bitrix\Main\Type\Date || $dateValue instanceof \Bitrix\Main\Type\DateTime)
214 {
215 $dateValue = mb_strtolower(FormatDate('d F Y', $dateValue->getTimestamp()));
216 $yearPostfix = Loc::getMessage('SALE_HPS_BILLBY_YEAR_POSTFIX');
217 if (!empty($yearPostfix))
218 $dateValue .= $yearPostfix;
219 unset($yearPostfix);
220 }
221 else if (is_string($dateValue))
222 {
223 $timeStampValue = MakeTimeStamp($dateValue);
224 if ($timeStampValue !== false)
225 $dateValue = mb_strtolower(FormatDate('d F Y', $timeStampValue));
226 unset($timeStampValue);
227 }
228 ?>
229 <tr>
230 <td></td>
231 <td style="font-size: 1.6em; font-weight: bold; text-align: center">
232 <nobr><?= htmlspecialcharsbx($params['BILLBY_HEADER']) ;?> <?=Loc::getMessage('SALE_HPS_BILLBY_SELLER_TITLE', array('#PAYMENT_NUM#' => htmlspecialcharsbx($params["ACCOUNT_NUMBER"]), '#PAYMENT_DATE#' => htmlspecialcharsbx($dateValue)));?>
233 </nobr>
234 </td>
235 <td></td>
236 </tr>
237<?endif;?>
238<? if ($params["BILLBY_ORDER_SUBJECT"]) { ?>
239 <tr>
240 <td></td>
241 <td><?=htmlspecialcharsbx($params["BILLBY_ORDER_SUBJECT"]); ?></td>
242 <td></td>
243 </tr>
244<? } ?>
245<? if ($params["PAYMENT_DATE_PAY_BEFORE"]) { ?>
246 <tr>
247 <td></td>
248 <td>
249 <?=Loc::getMessage('SALE_HPS_BILLBY_SELLER_DATE_END', array('#PAYMENT_DATE_END#' => ConvertDateTime($params["PAYMENT_DATE_PAY_BEFORE"], FORMAT_DATE) ?: htmlspecialcharsbx($params["PAYMENT_DATE_PAY_BEFORE"])));?>
250 </td>
251 <td></td>
252 </tr>
253<? } ?>
254</table>
255
256<br>
257<?
258
259if ($params['BILLBY_PAYER_SHOW'] == 'Y')
260{
261 $buyerInfo = '';
262 $buyerInfoRows = array();
263 if ($params['BUYER_PERSON_COMPANY_DOGOVOR'])
264 {
265 $buyerInfoRows[] =
266 Loc::getMessage('SALE_HPS_BILLBY_BUYER_DOGOVOR').': '.htmlspecialcharsbx($params['BUYER_PERSON_COMPANY_DOGOVOR']).'<br>';
267 }
268 $buyerInfoName = Loc::getMessage('SALE_HPS_BILLBY_BUYER_TITLE').':';
269 if ($params["BUYER_PERSON_COMPANY_NAME"])
270 {
271 if (!empty($buyerInfoName))
272 $buyerInfoName .= ' ';
273 $buyerInfoName .= $params["BUYER_PERSON_COMPANY_NAME"];
274 }
275 if (!empty($buyerInfoName))
276 $buyerInfoRows[] = htmlspecialcharsbx($buyerInfoName);
277 unset($buyerInfoName);
278 $buyerInfoTaxId = '';
279 if ($params['BUYER_PERSON_COMPANY_INN'])
280 {
281 $buyerInfoTaxId .= Loc::getMessage('SALE_HPS_BILLBY_INN').': '.$params['BUYER_PERSON_COMPANY_INN'];
282 if (!empty($buyerInfoTaxId))
283 $buyerInfoRows[] = htmlspecialcharsbx($buyerInfoTaxId);
284 }
285 unset($buyerInfoTaxId);
286 $buyerInfoBank = '';
287 $buyerBank = '';
288 $buyerRs = '';
289 if ($params["BUYER_PERSON_COMPANY_BANK_NAME"])
290 {
291 $buyerBankCity = '';
292 if ($params["BUYER_PERSON_COMPANY_BANK_CITY"])
293 {
294 $buyerBankCity = $params["BUYER_PERSON_COMPANY_BANK_CITY"];
295 if (is_array($buyerBankCity))
296 $buyerBankCity = implode(', ', $buyerBankCity);
297 else
298 $buyerBankCity = str_replace(array("\r\n", "\n", "\r"), ', ', strval($buyerBankCity));
299 }
300 $buyerBank = sprintf(
301 "%s %s",
302 $params["BUYER_PERSON_COMPANY_BANK_NAME"],
303 $buyerBankCity
304 );
305 $buyerRs = $params["BUYER_PERSON_COMPANY_BANK_ACCOUNT"];
306 }
307 else
308 {
309 $rsPattern = '/\s*\d{10,100}\s*/';
310
311 $buyerBank = trim(preg_replace($rsPattern, ' ', $params["BUYER_PERSON_COMPANY_BANK_ACCOUNT"]));
312
313 preg_match($rsPattern, $params["BUYER_PERSON_COMPANY_BANK_ACCOUNT"], $matches);
314 $buyerRs = trim($matches[0]);
315 }
316 if (!empty($buyerRs))
317 {
318 $buyerRsPrefix = Loc::getMessage('SALE_HPS_BILLBY_SELLER_ACC_ABBR');
319 if (!empty($buyerRsPrefix))
320 $buyerRs = $buyerRsPrefix.' '.$buyerRs;
321 unset($buyerRsPrefix);
322 $buyerInfoBank .= $buyerRs;
323 }
324 unset($buyerRs);
325 if (!empty($buyerBank))
326 {
327 if (!empty($buyerInfoBank))
328 $buyerInfoBank .= ', ';
329 $buyerInfoBank .= $buyerBank;
330 }
331 unset($buyerBank);
332 if (!empty($params['BUYER_PERSON_COMPANY_BANK_BIC']))
333 {
334 if (!empty($buyerInfoBank))
335 $buyerInfoBank .= ', ';
336 $buyerInfoBank .= Loc::getMessage('SALE_HPS_BILLBY_SELLER_BANK_BIK').' '.$params['BUYER_PERSON_COMPANY_BANK_BIC'];
337 }
338 if (!empty($buyerInfoBank))
339 $buyerInfoRows[] = htmlspecialcharsbx($buyerInfoBank);
340 unset($buyerInfoBank);
341 $buyerInfoAddr = '';
342 if ($params['BUYER_PERSON_COMPANY_ADDRESS'])
343 {
344 $buyerAddr = $params['BUYER_PERSON_COMPANY_ADDRESS'];
345 if (is_array($buyerAddr))
346 $buyerAddr = implode(', ', $buyerAddr);
347 else
348 $buyerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($buyerAddr));
349 if (!empty($buyerAddr))
350 $buyerInfoAddr .= Loc::getMessage('SALE_HPS_BILLBY_ADDR_TITLE').': '.$buyerAddr;
351 }
352 if ($params["BUYER_PERSON_COMPANY_PHONE"])
353 {
354 if (!empty($buyerInfoAddr))
355 $buyerInfoAddr .= ', ';
356 $phoneTitle = Loc::getMessage('SALE_HPS_BILLBY_PHONE_TITLE');
357 if (!empty($phoneTitle))
358 $buyerInfoAddr .= $phoneTitle.' ';
359 $buyerInfoAddr .= $params["BUYER_PERSON_COMPANY_PHONE"];
360 }
361 if ($params["BUYER_PERSON_COMPANY_FAX"])
362 {
363 if (!empty($buyerInfoAddr))
364 $buyerInfoAddr .= ', ';
365 $phoneTitle = Loc::getMessage('SALE_HPS_BILLBY_FAX_TITLE');
366 if (!empty($phoneTitle))
367 $buyerInfoAddr .= $phoneTitle.' ';
368 $buyerInfoAddr .= $params["BUYER_PERSON_COMPANY_FAX"];
369 }
370 if ($params["BUYER_PERSON_COMPANY_NAME_CONTACT"])
371 {
372 if (!empty($buyerInfoAddr))
373 $buyerInfoAddr .= ', ';
374 $buyerInfoAddr .= $params["BUYER_PERSON_COMPANY_NAME_CONTACT"];
375 }
376 if (!empty($buyerInfoAddr))
377 $buyerInfoRows[] = htmlspecialcharsbx($buyerInfoAddr);
378 unset($buyerInfoAddr);
379 if (!empty($buyerInfoRows))
380 {
381 $buyerInfo = implode('<br>', $buyerInfoRows);
382 echo $buyerInfo;
383 }
384 unset($buyerInfoRows);
385}
386?>
387
388<br>
389<br>
390
391<?php
392// Precision
393$currencyFormat = CCurrencyLang::GetFormatDescription($params['CURRENCY']);
394if ($currencyFormat === false)
395 $currencyFormat = CCurrencyLang::GetDefaultValues();
397if ($currencyPrecision <= 0)
399$salePrecision = (int)Bitrix\Main\Config\Option::get('sale', 'value_precision', 2);
400if ($salePrecision <= 0)
401 $salePrecision = 2;
404
407
408$n = 0;
409$sum = 0.00;
415
416$columnList = array('NUMBER', 'NAME', 'QUANTITY', 'MEASURE', 'PRICE', 'SUM', 'VAT_RATE', 'VAT_SUM', 'TOTAL');
419foreach ($columnList as $column)
420{
421 if ($params['BILLBY_COLUMN_'.$column.'_SHOW'] == 'Y')
422 {
423 $caption = $params['BILLBY_COLUMN_'.$column.'_TITLE'];
424 $arCols[$column] = array(
425 'NAME' => htmlspecialcharsbx($caption),
426 'SORT' => $params['BILLBY_COLUMN_'.$column.'_SORT']
427 );
428 }
429}
430if ($params['USER_COLUMNS'])
431{
432 $columnList = array_merge($columnList, array_keys($params['USER_COLUMNS']));
433 foreach ($params['USER_COLUMNS'] as $id => $val)
434 {
435 $arCols[$id] = array(
436 'NAME' => htmlspecialcharsbx($val['NAME']),
437 'SORT' => $val['SORT']
438 );
439 }
440}
441
442uasort($arCols, function ($a, $b) {return ($a['SORT'] < $b['SORT']) ? -1 : 1;});
443
444$arColumnKeys = array_keys($arCols);
446
447foreach ($params['BASKET_ITEMS'] as $basketItem)
448{
449 $productName = $basketItem["NAME"];
450 if ($productName == "OrderDelivery")
451 $productName = Loc::getMessage('SALE_HPS_BILLBY_DELIVERY');
452 else if ($productName == "OrderDiscount")
453 $productName = Loc::getMessage('SALE_HPS_BILLBY_DISCOUNT');
454
455 if ($basketItem['IS_VAT_IN_PRICE'])
456 {
457 $basketItemTotal = doubleval($basketItem['PRICE'] * $basketItem['QUANTITY']);
458
459 if (($basketItem['VAT_RATE'] != 0.0))
460 {
461 $basketItemSum = $basketItemTotal / (1 + doubleval($basketItem['VAT_RATE']));
462 $basketItemVatSum = doubleval($basketItemSum * $basketItem['VAT_RATE']);
463 }
464 else
465 {
466 $basketItemSum = $basketItemTotal;
467 $basketItemVatSum = 0.0;
468 }
469 }
470 else
471 {
472 $basketItemSum = doubleval($basketItem['PRICE'] * $basketItem['QUANTITY']);
473
474 if (($basketItem['VAT_RATE'] != 0.0))
475 {
476 $basketItemTotal = doubleval($basketItemSum * (1 + doubleval($basketItem['VAT_RATE'])));
477 $basketItemVatSum = doubleval($basketItemSum * doubleval($basketItem['VAT_RATE']));
478 }
479 else
480 {
481 $basketItemTotal = $basketItemSum;
482 $basketItemVatSum = 0.0;
483 }
484 }
485
486 $cells[++$n] = array();
487 foreach ($arCols as $columnId => $col)
488 {
489 $data = null;
490
491 switch ($columnId)
492 {
493 case 'NUMBER':
494 $data = $n;
495 break;
496 case 'NAME':
497 $data = htmlspecialcharsbx($productName);
498 break;
499 case 'QUANTITY':
500 $data = roundEx($basketItem['QUANTITY'], SALE_VALUE_PRECISION);
501 break;
502 case 'MEASURE':
503 $data = $basketItem["MEASURE_NAME"] ? htmlspecialcharsbx($basketItem["MEASURE_NAME"]) : Loc::getMessage('SALE_HPS_BILLBY_BASKET_MEASURE_DEFAULT');
504 break;
505 case 'PRICE':
506 $data = SaleFormatCurrency($basketItem['PRICE'], $basketItem['CURRENCY'], true);
507 break;
508 case 'SUM':
509 $data = SaleFormatCurrency($basketItemSum, $basketItem['CURRENCY'], true);
510 break;
511 case 'VAT_RATE':
512 if ($basketItem['VAT_RATE'] == 0.0)
513 $data = htmlspecialcharsbx(Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_RATE_NO'));
514 else
515 $data = roundEx($basketItem['VAT_RATE'] * 100, $precision)."%";
516 break;
517 case 'VAT_SUM':
518 if ($basketItem['VAT_RATE'] == 0.0)
519 $data = htmlspecialcharsbx(Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_SUM_NO'));
520 else
521 $data = SaleFormatCurrency($basketItemVatSum, $basketItem['CURRENCY'], true);
522 break;
523 case 'TOTAL':
524 $data = SaleFormatCurrency($basketItemTotal, $basketItem['CURRENCY'], true);
525 break;
526 default :
527 $data = ($basketItem[$columnId]) ?: '';
528 }
529
530 if ($data !== null)
531 $cells[$n][$columnId] = $data;
532 }
533 $props[$n] = array();
534 if ($basketItem['PROPS'])
535 {
536 foreach ($basketItem['PROPS'] as $basketPropertyItem)
537 {
538 if ($basketPropertyItem['CODE'] == 'CATALOG.XML_ID' || $basketPropertyItem['CODE'] == 'PRODUCT.XML_ID')
539 continue;
540 $props[$n][] = htmlspecialcharsbx(sprintf("%s: %s", $basketPropertyItem["NAME"], $basketPropertyItem["VALUE"]));
541 }
542 }
543 $sum += roundEx(doubleval($basketItem['PRICE'] * $basketItem['QUANTITY']), $precision);
544 $vat = max($vat, $basketItem['VAT_RATE']);
545 $totalSum += roundEx($basketItemSum, $precision);
546 $totalVatSum += roundEx($basketItemVatSum, $precision);
547 $totalSumWithVat += roundEx($basketItemTotal, $precision);
548}
549
550if ($params['DELIVERY_PRICE'] > 0)
551{
552 $deliveryItem = Loc::getMessage('SALE_HPS_BILLBY_DELIVERY');
553
554 if ($params['DELIVERY_NAME'])
555 $deliveryItem .= sprintf(" (%s)", $params['DELIVERY_NAME']);
556
557 $basketItemTotal = $params['DELIVERY_PRICE'];
558
559 if (($vat != 0.0))
560 {
561 $basketItemSum = $basketItemTotal / (1 + doubleval($vat));
562 $basketItemVatSum = doubleval($basketItemSum * $vat);
563 }
564 else
565 {
566 $basketItemSum = $basketItemTotal;
567 $basketItemVatSum = 0.0;
568 }
569
570 $cells[++$n] = array();
571 foreach ($arCols as $columnId => $caption)
572 {
573 $data = null;
574
575 switch ($columnId)
576 {
577 case 'NUMBER':
578 $data = $n;
579 break;
580 case 'NAME':
581 $data = htmlspecialcharsbx($deliveryItem);
582 break;
583 case 'QUANTITY':
584 $data = 1;
585 break;
586 case 'MEASURE':
587 $data = '';
588 break;
589 case 'PRICE':
590 $data = SaleFormatCurrency($params['DELIVERY_PRICE'], $params['CURRENCY'], true);
591 break;
592 case 'SUM':
593 $data = SaleFormatCurrency($basketItemSum, $params['CURRENCY'], true);
594 break;
595 case 'VAT_RATE':
596 if ($vat == 0.0)
597 $data = htmlspecialcharsbx(Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_RATE_NO'));
598 else
599 $data = roundEx($vat * 100, $precision)."%";
600 break;
601 case 'VAT_SUM':
602 if ($vat == 0.0)
603 $data = htmlspecialcharsbx(Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_SUM_NO'));
604 else
605 $data = SaleFormatCurrency($basketItemVatSum, $params['CURRENCY'], true);
606 break;
607 case 'TOTAL':
608 $data = SaleFormatCurrency($basketItemTotal, $params['CURRENCY'], true);
609 break;
610 }
611
612 if ($data !== null)
613 $cells[$n][$columnId] = $data;
614 }
615 $sum += roundEx(doubleval($params['DELIVERY_PRICE']), $precision);
616 $totalSum += roundEx($basketItemSum, $precision);
617 $totalVatSum += roundEx($basketItemVatSum, $precision);
618 $totalSumWithVat += roundEx($basketItemTotal, $precision);
619}
620
623if ($params['BILLBY_TOTAL_SHOW'] == 'Y')
624{
625 $totalRowValues = array();
626 foreach ($arColumnKeys as $colNum => $colCode)
627 {
628 $skip = false;
629 $value = null;
630 switch ($colCode)
631 {
632 case 'SUM':
633 $value = SaleFormatCurrency($totalSum, $params['CURRENCY'], true);
634 break;
635 case 'VAT_RATE':
636 $value = Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_RATE_X');
637 break;
638 case 'VAT_SUM':
639 if ($totalVatSum == 0.0)
640 $value = htmlspecialcharsbx(Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT_SUM_NO'));
641 else
642 $value = SaleFormatCurrency($totalVatSum, $params['CURRENCY'], true);
643 break;
644 case 'TOTAL':
645 $value = SaleFormatCurrency($totalSumWithVat, $params['CURRENCY'], true);
646 break;
647 default:
648 $skip = true;
649 }
650 if (!$skip)
651 $totalRowValues[$colNum] = $value;
652 }
653 unset($skip, $value);
654 $totalTitleColIndex = (empty($totalRowValues) ? 0 : (int)min(array_keys($totalRowValues))) - 1;
655 if ($totalTitleColIndex >= 0)
656 $totalRowValues[$totalTitleColIndex] = Loc::getMessage('SALE_HPS_BILLBY_TOTAL_SUM');
657 if (!empty($totalRowValues))
658 {
659 $cells[++$n] = array();
660 for ($i = 0; $i < $columnCount; $i++)
661 $cells[$n][$arColumnKeys[$i]] = isset($totalRowValues[$i]) ? $totalRowValues[$i] : null;
663 }
664 unset($totalRowValues);
665
666 $totalRowIsLast = true;
668 if ($params['TAXES'])
669 {
670 foreach ($params['TAXES'] as $tax)
671 {
672 if (isset($tax['CODE']) && $tax['CODE'] !== 'VAT')
673 {
674 $totalRowIsLast = false;
675 $cells[++$n] = array();
676 for ($i = 0; $i < $columnCount; $i++)
677 $cells[$n][$arColumnKeys[$i]] = null;
678
680 "%s%s%s:",
681 ($tax["IS_IN_PRICE"] == "Y") ? Loc::getMessage('SALE_HPS_BILLBY_INCLUDING') : "",
682 $tax["TAX_NAME"],
683 ($vat <= 0 && $tax["IS_PERCENT"] == "Y")
684 ? sprintf(' (%s%%)', roundEx($tax["VALUE"], $precision))
685 : ""
686 ));
687 $cells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($tax["VALUE_MONEY"], $params['CURRENCY'], true);
688 }
689 }
690 }
691
692 if ($params['SUM_PAID'] > 0)
693 {
694 $totalRowIsLast = false;
695 $cells[++$n] = array();
696 for ($i = 0; $i < $columnCount; $i++)
697 $cells[$n][$arColumnKeys[$i]] = null;
698
699 $cells[$n][$arColumnKeys[$columnCount-2]] = Loc::getMessage('SALE_HPS_BILLBY_TOTAL_PAID');
700 $cells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($params['SUM_PAID'], $params['CURRENCY'], true);
701 }
702
703 if ($params['DISCOUNT_PRICE'] > 0)
704 {
705 $totalRowIsLast = false;
706 $cells[++$n] = array();
707 for ($i = 0; $i < $columnCount; $i++)
708 $cells[$n][$arColumnKeys[$i]] = null;
709
710 $cells[$n][$arColumnKeys[$columnCount-2]] = Loc::getMessage('SALE_HPS_BILLBY_TOTAL_DISCOUNT');
711 $cells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($params['DISCOUNT_PRICE'], $params['CURRENCY'], true);
712 }
713
714 if (!$totalRowIsLast)
715 {
716 $cells[$totalRowIndex][$arColumnKeys[$totalTitleColIndex]] = Loc::getMessage('SALE_HPS_BILLBY_SUBTOTAL');
717
718 $cells[++$n] = array();
719 for ($i = 0; $i < $columnCount; $i++)
720 $cells[$n][$arColumnKeys[$i]] = null;
721
722 $cells[$n][$arColumnKeys[$columnCount-2]] = Loc::getMessage('SALE_HPS_BILLBY_TOTAL_SUM');
723 $cells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($params['SUM'], $params['CURRENCY'], true);
724 }
725}
726?>
727<table class="it" width="100%">
728 <tr>
729 <?foreach ($arCols as $columnId => $col):?>
730 <td><?=$col['NAME'];?></td>
732 </tr>
733<?
734
736for ($n = 1; $n <= $rowsCnt; $n++):
737
738 $accumulated = 0;
739?>
740 <tr valign="top"<?=(($totalRowIsLast && $n === $totalRowIndex) ? ' style="font-weight: bold;"' : '')?>>
741 <?foreach ($arCols as $columnId => $col):?>
742 <?
743 if (!is_null($cells[$n][$columnId]))
744 {
745 if ($columnId === 'NUMBER')
746 {?>
747 <td align="center"><?=$cells[$n][$columnId];?></td>
748 <?}
749 elseif ($columnId === 'NAME')
750 {
751 ?>
752 <td align="<?=($n > $cntBasketItem) ? 'right' : 'left';?>"
753 style="word-break: break-word; word-wrap: break-word; <? if ($accumulated) {?>border-width: 0 1pt 0 0; <? } ?>"
754 <? if ($accumulated) { ?>colspan="<?=($accumulated+1); ?>"<? $accumulated = 0; } ?>>
755 <?=$cells[$n][$columnId]; ?>
756 <? if (isset($props[$n]) && is_array($props[$n])) { ?>
757 <? foreach ($props[$n] as $property) { ?>
758 <br>
759 <small><?=$property; ?></small>
760 <? } ?>
761 <? } ?>
762 </td>
763 <?
764 }
765 else
766 {
767 ?>
768 <td align="right"
769 <? if ($accumulated) { ?>
770 style="border-width: 0 1pt 0 0"
771 colspan="<? echo $accumulated+1; ?>"
772 <? $accumulated = 0; } ?>>
773 <?if ($columnId == 'PRICE' || $columnId == 'SUM'
774 || $columnId == 'VAT_RATE' || $columnId == 'VAT_SUM' || $columnId == 'TOTAL'):?>
775 <nobr><?=$cells[$n][$columnId];?></nobr>
776 <?else:?>
777 <?=$cells[$n][$columnId]; ?>
778 <?endif;?>
779 </td>
780 <?
781 }
782 }
783 else
784 {
785 $accumulated++;
786 }
787 ?>
788 <?endforeach;?>
789 </tr>
790
792</table>
793
794<? if ($params['BILLBY_TOTAL_SHOW'] == 'Y'): ?>
795 <div style="margin-top: 5pt; font-weight: bold; word-break: break-word; word-wrap: break-word;"><?
796 $inWords = in_array($params['CURRENCY'], array("RUR", "RUB", "UAH", "KZT", "BYR", "BYN"));
797 echo Loc::getMessage('SALE_HPS_BILLBY_TOTAL_VAT').': ';
798 if ($inWords)
800 else
802 unset($totalVatSum);
803 ?><br><br><?
804 echo Loc::getMessage('SALE_HPS_BILLBY_TOTAL_SUM_WITH_VAT').': ';
805 if ($inWords)
807 else
809 unset($inWords);
810 ?></div>
811<? endif; ?>
812<br>
813<br>
814
815<? if ($params["BILLBY_COMMENT1"] || $params["BILLBY_COMMENT2"]) { ?>
816<br>
817 <? if ($params["BILLBY_COMMENT1"]) { ?>
818 <?=nl2br(HTMLToTxt(preg_replace(
819 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
820 htmlspecialcharsback($params["BILLBY_COMMENT1"])
821 ), '', array(), 0)); ?>
822 <br>
823 <br>
824 <? } ?>
825 <? if ($params["BILLBY_COMMENT2"]) { ?>
826 <?=nl2br(HTMLToTxt(preg_replace(
827 array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
828 htmlspecialcharsback($params["BILLBY_COMMENT2"])
829 ), '', array(), 0)); ?>
830 <br>
831 <br>
832 <? } ?>
833<? } ?>
834
835<br>
836<br>
837
838<?if ($params['BILLBY_SIGN_SHOW'] == 'Y'):?>
839 <? if (!$blank) { ?>
840 <div style="position: relative; "><?=CFile::ShowImage(
841 $params["BILLBY_PATH_TO_STAMP"],
842 160, 160,
843 'style="position: absolute; left: 40pt; "'
844 ); ?></div>
845 <? } ?>
846
847 <div style="position: relative">
848 <table class="sign">
849 <? if ($params["SELLER_COMPANY_DIRECTOR_POSITION"]) { ?>
850 <tr>
851 <td style="width: 150pt; font-weight: bold;"><?= htmlspecialcharsbx($params["SELLER_COMPANY_DIRECTOR_POSITION"]) ?></td>
852 <td style="width: 160pt; border-bottom: 1pt solid #000000; text-align: center; ">
853 <? if (!$blank) { ?>
854 <?=CFile::ShowImage($params["SELLER_COMPANY_DIR_SIGN"], 200, 50); ?>
855 <? } ?>
856 </td>
857 <td>
858 <? if ($params["SELLER_COMPANY_DIRECTOR_NAME"]) { ?>
859 (<?=htmlspecialcharsbx($params["SELLER_COMPANY_DIRECTOR_NAME"]); ?>)
860 <? } ?>
861 </td>
862 </tr>
863 <tr><td colspan="3">&nbsp;</td></tr>
864 <? } ?>
865 <? if ($params["SELLER_COMPANY_ACCOUNTANT_POSITION"]) { ?>
866 <tr>
867 <td style="width: 150pt; font-weight: bold;"><?= htmlspecialcharsbx($params["SELLER_COMPANY_ACCOUNTANT_POSITION"]) ?></td>
868 <td style="width: 160pt; border-bottom: 1pt solid #000000; text-align: center; ">
869 <? if (!$blank) { ?>
870 <?=CFile::ShowImage($params["SELLER_COMPANY_ACC_SIGN"], 200, 50); ?>
871 <? } ?>
872 </td>
873 <td>
874 <? if ($params["SELLER_COMPANY_ACCOUNTANT_NAME"]) { ?>
875 (<?=htmlspecialcharsbx($params["SELLER_COMPANY_ACCOUNTANT_NAME"]); ?>)
876 <? } ?>
877 </td>
878 </tr>
879 <? } ?>
880 </table>
881 </div>
882<?endif;?>
883
884</div>
885
886</body>
887</html>
$path
Определения access_edit.php:21
$sum
Определения checkout.php:6
static ShowImage($strImage, $iMaxW=0, $iMaxH=0, $sParams=null, $strImageUrl="", $bPopup=false, $sPopupTitle=false, $iSizeWHTTP=0, $iSizeHHTTP=0, $strImageUrlTemplate="")
Определения file.php:1805
static _GetImgParams($strImage, $iSizeWHTTP=0, $iSizeHHTTP=0)
Определения file.php:1726
$data['IS_AVAILABLE']
Определения .description.php:13
collapse(node)
Определения ebay_mip_setup.php:316
& nbsp
Определения epilog_main_admin.php:38
hidden PROPERTY[<?=$propertyIndex?>][CODE]<?=htmlspecialcharsEx( $propertyCode)?> height
Определения file_new.php:759
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
Определения file_new.php:677
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
Определения file_new.php:657
<? if( $useEditor3):?>< tr class="heading">< td colspan="2"><? echo GetMessage("FILEMAN_OPTION_SPELL_SET");?></td ></tr ><? if(function_exists( 'pspell_config_create')):$use_pspell_checked=(COption::GetOptionString( $module_id, "use_pspell", "Y")=="Y") ? "checked" :"";?>< tr >< td valign="top">< label for="use_pspell"><?echo GetMessage("FILEMAN_OPTION_USE_PSPELL");?></label >< br >< a title="<?echo GetMessage("FILEMAN_OPTION_ADDISH_DICS_TITLE");?> http
Определения options.php:1473
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
endif
Определения csv_new_setup.php:990
const FORMAT_DATE
Определения include.php:63
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
Определения tools.php:724
roundEx($value, $prec=0)
Определения tools.php:4635
FormatDate($format="", $timestamp=false, $now=false, ?string $languageId=null)
Определения tools.php:871
htmlspecialcharsback($str)
Определения tools.php:2693
HTMLToTxt($str, $strSiteUrl="", $aDelete=[], $maxlen=70)
Определения tools.php:2587
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
MakeTimeStamp($datetime, $format=false)
Определения tools.php:538
global_menu_<?echo $menu["menu_id"]?> adm main menu item icon adm main menu item text text adm main menu hover adm submenu menucontainer menu_id menu_id items_id items_id desktop menu_id block none adm global submenu<?=($subMenuDisplay=="block" ? " adm-global-submenu-active" :"")?> global_submenu_<?echo $menu["menu_id"]?> text MAIN_PR_ADMIN_FAV items adm submenu items wrap adm submenu items stretch wrap BX adminMenu itemsStretchScroll()"> <table class if (!empty( $menu["items"])) elseif ( $menu[ 'menu_id']=='desktop') if ( $menu[ 'menu_id']=='desktop') endforeach
Определения prolog_main_admin.php:255
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
<? endif;?> window document title
Определения prolog_main_admin.php:76
die
Определения quickway.php:367
$i
Определения factura.php:643
font style
Определения invoice.php:442
</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
$background
Определения html.php:27
$pageWidth
Определения html.php:24
if( $arBasket=$dbBasket->Fetch()) if($vat > 0) $rowsCnt
Определения html.php:430
$sellerAddr
Определения html.php:558
$width
Определения html.php:68
if(CSalePaySystemAction::GetParamValue('BACKGROUND', false)) $margin
Определения html.php:61
$pageHeight
Определения html.php:25
$vatRateColumn
Определения template.php:278
$cells
Определения template.php:268
$arColumnKeys
Определения template.php:310
$columnList
Определения template.php:276
$sellerBank
Определения template.php:134
$vat
Определения template.php:273
$columnCount
Определения template.php:311
$props
Определения template.php:269
$sellerRs
Определения template.php:137
$arCols
Определения template.php:277
endfor
Определения template.php:569
$cntBasketItem
Определения template.php:274
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799
$sellerInfoTaxId
Определения template.php:93
foreach( $params[ 'BASKET_ITEMS'] as $basketItem) if($params['DELIVERY_PRICE'] > 0) $totalRowIsLast
Определения template.php:621
$precision
Определения template.php:403
$currencyPrecision
Определения template.php:396
$totalSumWithVat
Определения template.php:412
$sellerInfoAddr
Определения template.php:156
$sellerInfoBank
Определения template.php:101
$salePrecision
Определения template.php:399
$totalSum
Определения template.php:410
$totalVatSum
Определения template.php:411
$totalRowIndex
Определения template.php:622
if($params['BILLBY_HEADER_SHOW']=='Y') $sellerInfoRows
Определения template.php:84
$sellerInfoName
Определения template.php:85
if($params["BILLBY_ORDER_SUBJECT"]) if( $params["PAYMENT_DATE_PAY_BEFORE"]) if($params['BILLBY_PAYER_SHOW']=='Y') $currencyFormat
Определения template.php:393
text align
Определения template.php:556
else $a
Определения template.php:137
SaleFormatCurrency($fSum, $strCurrency, $OnlyValue=false, $withoutFormat=false)
Определения include.php:142
const SALE_VALUE_PRECISION
Определения include.php:46
$val
Определения options.php:1793
Number2Word_Rus($source, $IS_MONEY="Y", $currency="")
Определения include.php:2
$matches
Определения index.php:22
$n
Определения update_log.php:107
$blank
Определения template_pdf.php:11
$totalTitleColIndex
Определения template_pdf.php:449