Your IP : 3.144.81.47


Current Path : /var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/
Upload File :
Current File : /var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/php_interface.tar

.htaccess000066400000000015147714176230006354 0ustar00Deny from Allinclude/catalog_export/yandex_simple_setup.php000064400000000140147714176230016003 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_simple_setup.php");
?>include/catalog_export/csv_new_run.php000064400000000175147714176230014262 0ustar00<?
//<title>Export CSV (new)</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/csv_new_run.php");
?>include/catalog_export/yandex_detail.php000064400000000132147714176230014535 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_detail.php");
?>include/catalog_export/yandex_simple_run.php000064400000000177147714176230015461 0ustar00<?
//<title>Yandex - simple</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_simple_run.php");
?>include/catalog_export/froogle_util.php000064400000000131147714176230014414 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/froogle_util.php");
?>include/catalog_export/csv_run.php000064400000000160147714176230013403 0ustar00<?
//<title>Export CSV</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/csv_run.php");
?>include/catalog_export/csv_new_setup.php000064400000000134147714176230014611 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/csv_new_setup.php");
?>include/catalog_export/froogle_setup.php000064400000000132147714176230014600 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/froogle_setup.php");
?>include/catalog_export/yandex_setup.php000064400000000131147714176230014432 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_setup.php");
?>include/catalog_export/yandex_run.php000064400000000157147714176230014106 0ustar00<?
//<title>Yandex</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_run.php");
?>include/catalog_export/csv_setup.php000064400000000126147714176230013741 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/csv_setup.php");
?>include/catalog_export/cron_frame.php000064400000006675147714176230014060 0ustar00#!#PHP_PATH# -q
<?php
/* replace #PHP_PATH# to real path of php binary
For example:
/user/bin/php
/usr/bin/perl
/usr/bin/env python
*/
$_SERVER["DOCUMENT_ROOT"] = "#DOCUMENT_ROOT#"; // replace #DOCUMENT_ROOT# to real document root path
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

$siteID = '#SITE_ID#'; // replace #SITE_ID# to your real site ID - need for language ID

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true);
define("BX_CAT_CRON", true);
define('NO_AGENT_CHECK', true);
if (preg_match('/^[a-z0-9_]{2}$/i', $siteID) === 1)
{
	define('SITE_ID', $siteID);
}
else
{
	die('No defined site - $siteID');
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

global $DB;

if (!defined('LANGUAGE_ID') || preg_match('/^[a-z]{2}$/i', LANGUAGE_ID) !== 1)
	die('Language id is absent - defined site is bad');

set_time_limit(0);

if (!\Bitrix\Main\Loader::includeModule('catalog'))
	die('Can\'t include module');

$profile_id = 0;
if (isset($argv[1]))
	$profile_id = (int)$argv[1];
if ($profile_id <= 0)
	die('No profile id');

$ar_profile = CCatalogExport::GetByID($profile_id);
if (!$ar_profile)
	die('No profile');

$strFile = CATALOG_PATH2EXPORTS.$ar_profile["FILE_NAME"]."_run.php";
if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
{
	$strFile = CATALOG_PATH2EXPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php";
	if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
		die('No export script');
}

$arSetupVars = array();
$intSetupVarsCount = 0;
if ($ar_profile["DEFAULT_PROFILE"] != 'Y')
{
	parse_str($ar_profile["SETUP_VARS"], $arSetupVars);
	if (!empty($arSetupVars) && is_array($arSetupVars))
		$intSetupVarsCount = extract($arSetupVars, EXTR_SKIP);
}

$firstStep = true;

global $arCatalogAvailProdFields;
$arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT);
global $arCatalogAvailPriceFields;
$arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG);
global $arCatalogAvailValueFields;
$arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE);
global $arCatalogAvailQuantityFields;
$arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $arCatalogAvailGroupFields;
$arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION);

global $defCatalogAvailProdFields;
$defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT);
global $defCatalogAvailPriceFields;
$defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG);
global $defCatalogAvailValueFields;
$defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE);
global $defCatalogAvailQuantityFields;
$defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $defCatalogAvailGroupFields;
$defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION);
global $defCatalogAvailCurrencies;
$defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY);

CCatalogDiscountSave::Disable();
include($_SERVER["DOCUMENT_ROOT"].$strFile);
CCatalogDiscountSave::Enable();

CCatalogExport::Update(
	$profile_id,
	array(
		"=LAST_USE" => $DB->GetNowFunction()
	)
);include/catalog_export/yandex_util.php000064400000000130147714176230014246 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/yandex_util.php");
?>include/catalog_export/froogle_run.php000064400000000161147714176230014246 0ustar00<?
//<title>Froogle</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load/froogle_run.php");
?>include/sale_payment/quote_ru/html.php000066400000055651147714176230014222 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Коммерческое предложение</title>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET?>">
<style>
	table { border-collapse: collapse; }
	table.acc td { border: 1pt solid #000000; padding: 0 3pt; line-height: 21pt; }
	table.it td { border: 1pt solid #000000; padding: 0 3pt; }
	table.sign td { font-weight: bold; vertical-align: bottom; }
	table.rq td { vertical-align: top; }
	table.rq td div { line-height: 1.5em; min-height: 1.5em; }
</style>
</head>

<?

if ($_REQUEST['BLANK'] == 'Y')
	$blank = true;

$pageWidth  = 595.28;
$pageHeight = 841.89;

$background = '#ffffff';
if (CSalePaySystemAction::GetParamValue('BACKGROUND', false))
{
	$path = CSalePaySystemAction::GetParamValue('BACKGROUND', false);
	if (intval($path) > 0)
	{
		if ($arFile = CFile::GetFileArray($path))
			$path = $arFile['SRC'];
	}

	$backgroundStyle = CSalePaySystemAction::GetParamValue('BACKGROUND_STYLE', false);
	if (!in_array($backgroundStyle, array('none', 'tile', 'stretch')))
		$backgroundStyle = 'none';

	if ($path)
	{
		switch ($backgroundStyle)
		{
			case 'none':
				$background = "url('" . $path . "') 0 0 no-repeat";
				break;
			case 'tile':
				$background = "url('" . $path . "') 0 0 repeat";
				break;
			case 'stretch':
				$background = sprintf(
					"url('%s') 0 0 repeat-y; background-size: %.02fpt %.02fpt",
					$path, $pageWidth, $pageHeight
				);
				break;
		}
	}
}

$margin = array(
	'top' => intval(CSalePaySystemAction::GetParamValue('MARGIN_TOP', false) ?: 15) * 72/25.4,
	'right' => intval(CSalePaySystemAction::GetParamValue('MARGIN_RIGHT', false) ?: 15) * 72/25.4,
	'bottom' => intval(CSalePaySystemAction::GetParamValue('MARGIN_BOTTOM', false) ?: 15) * 72/25.4,
	'left' => intval(CSalePaySystemAction::GetParamValue('MARGIN_LEFT', false) ?: 20) * 72/25.4
);

$width = $pageWidth - $margin['left'] - $margin['right'];

?>

<body style="margin: 0pt; padding: 0pt; background: <?=$background; ?>"<? if ($_REQUEST['PRINT'] == 'Y') { ?> onload="setTimeout(window.print, 0);"<? } ?>>

<div style="margin: 0pt; padding: <?=join('pt ', $margin); ?>pt; width: <?=$width; ?>pt; background: <?=$background; ?>">
<?if (CSalePaySystemAction::GetParamValue('QUOTE_HEADER_SHOW') == 'Y'):?>
<table width="100%" style="padding: 0pt; vertical-align: top;">
	<tr>
		<td style="padding-right: 5pt; padding-bottom: 5pt;">
			<?
			$pathToLogo = CSalePaySystemAction::GetParamValue("PATH_TO_LOGO", false);
			if ($pathToLogo)
			{
				$imgParams = CFile::_GetImgParams(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false));
				$imgWidth = $imgParams['WIDTH'] * 96 / (intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96);
				?><img src="<?=$imgParams['SRC']; ?>" width="<?=$imgWidth; ?>" /><?
			}
			unset($pathToLogo);
			?>
		</td>
		<td></td>
		<td align="right" style="vertical-align: top;">
			<b><?=CSalePaySystemAction::GetParamValue("SELLER_NAME", false); ?></b>
			<?
			$sellerAddr = CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false);
			if ($sellerAddr)
			{
				if (is_array($sellerAddr))
					$sellerAddr = implode(', ', $sellerAddr);
				else
					$sellerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerAddr));
				?><br><b><?= $sellerAddr ?></b><?
			}
			unset($sellerAddr);
			$sellerPhone = CSalePaySystemAction::GetParamValue("SELLER_PHONE", false);
			if ($sellerPhone)
			{
				?><br><b><?=sprintf("Тел.: %s", $sellerPhone); ?></b><?
			}
			unset($sellerPhone);
			?>
		</td>
	</tr>
</table>
<?if (CSalePaySystemAction::GetParamValue("SELLER_BANK", false))
{
	$sellerBank = sprintf(
		"%s %s",
		CSalePaySystemAction::GetParamValue("SELLER_BANK", false),
		CSalePaySystemAction::GetParamValue("SELLER_BCITY", false)
	);
	$sellerRs = CSalePaySystemAction::GetParamValue("SELLER_RS", false);
}
else
{
	$rsPattern = '/\s*\d{10,100}\s*/';

	$sellerBank = trim(preg_replace($rsPattern, ' ', CSalePaySystemAction::GetParamValue("SELLER_RS", false)));

	preg_match($rsPattern, CSalePaySystemAction::GetParamValue("SELLER_RS", false), $matches);
	$sellerRs = trim($matches[0]);
}?>
<br>
<table width="100%">
	<colgroup>
		<col width="50%">
		<col width="0">
		<col width="50%">
	</colgroup>
	<tr>
		<td></td>
		<td style="font-size: 1.5em; font-weight: bold; text-align: center;"><nobr><?=sprintf(
			"КОММЕРЧЕСКОЕ ПРЕДЛОЖЕНИЕ № %s от %s",
			htmlspecialcharsbx($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"]),
			CSalePaySystemAction::GetParamValue("DATE_INSERT", false)
		); ?></nobr></td>
		<td></td>
	</tr>
<? if (CSalePaySystemAction::GetParamValue("ORDER_SUBJECT", false)) { ?>
	<tr>
		<td></td>
		<td><?=CSalePaySystemAction::GetParamValue("ORDER_SUBJECT", false); ?></td>
		<td></td>
	</tr>
<? } ?>
<? if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) { ?>
	<tr>
		<td></td>
		<td><?=sprintf(
			"Срок действия %s",
			ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false), FORMAT_DATE)
				?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)
		); ?></td>
		<td></td>
	</tr>
<? } ?>
</table>
<?endif;?>
<br>
<?$userFields = array();
for($i = 1; $i <= 5; $i++)
{
	$fildValue = CSalePaySystemAction::GetParamValue("USER_FIELD_{$i}", false);
	if($fildValue)
	{
		$userFields[] = $fildValue;
	}
}?>
<?if (CSalePaySystemAction::GetParamValue("COMMENT1", false)
	|| CSalePaySystemAction::GetParamValue("COMMENT2", false)
	|| !empty($userFields))
{ ?>
<b>Условия и комментарии</b>
<br>
	<? if (CSalePaySystemAction::GetParamValue("COMMENT1", false)) { ?>
	<?=nl2br(HTMLToTxt(preg_replace(
		array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
		htmlspecialcharsback(CSalePaySystemAction::GetParamValue("COMMENT1", false))
	), '', array(), 0)); ?>
	<br>
	<br>
	<? } ?>
	<? if (CSalePaySystemAction::GetParamValue("COMMENT2", false)) { ?>
	<?=nl2br(HTMLToTxt(preg_replace(
		array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
		htmlspecialcharsback(CSalePaySystemAction::GetParamValue("COMMENT2", false))
	), '', array(), 0)); ?>
	<br>
	<br>
	<? } ?>
	<?foreach($userFields as &$userField){?>
		<?=nl2br(HTMLToTxt(preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
				htmlspecialcharsback($userField)
			), '', array(), 0));?>
		<br>
		<br>
	<?}
	unset($userField);?>
<?
}
$arBasketItems = CSalePaySystemAction::GetParamValue("BASKET_ITEMS", false);
if(!is_array($arBasketItems))
	$arBasketItems = array();

$arCurFormat = CCurrencyLang::GetCurrencyFormat($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"]);
$currency = trim(str_replace('#', '', $arCurFormat['FORMAT_STRING']));

$vat = 0;
$arCols = array();
if (!empty($arBasketItems))
{
	$arBasketItems = getMeasures($arBasketItems);

	$arCells = array();
	$arProps = array();

	$columnList = array('NUMBER', 'NAME', 'QUANTITY', 'MEASURE', 'PRICE', 'VAT_RATE', 'DISCOUNT', 'SUM');
	$vatRateColumn = 0;
	foreach ($columnList as $column)
	{
		if (CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_SHOW') == 'Y')
		{
			$caption = CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_TITLE');
			if (in_array($column, array('PRICE', 'SUM')))
				$caption .= ', '.$currency;

			$arCols[$column] = array(
				'NAME' => $caption,
				'SORT' => CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_SORT')
			);
		}
	}

	if (CSalePaySystemAction::GetParamValue('USER_COLUMNS'))
	{
		$userColumns = CSalePaySystemAction::GetParamValue('USER_COLUMNS');
		$columnList = array_merge($columnList, array_keys($userColumns));
		foreach ($userColumns as $id => $val)
		{
			$arCols[$id] = array(
				'NAME' => $val['NAME'],
				'SORT' => $val['SORT']
			);
		}
	}

	uasort($arCols, function ($a, $b) {return ($a['SORT'] < $b['SORT']) ? -1 : 1;});

	$arColumnKeys = array_keys($arCols);
	$columnCount = count($arColumnKeys);

	$n = 0;
	$sum = 0.00;
	$bShowDiscount = false;
	foreach($arBasketItems as &$arBasket)
	{
		$productName = $arBasket["NAME"];
		if ($productName == "OrderDelivery")
			$productName = "Доставка";
		else if ($productName == "OrderDiscount")
			$productName = "Скидка";

		// discount
		$discountValue = '0%';
		$discountSum = 0.0;
		$discountIsSet = false;
		if (is_array($arBasket['CRM_PR_FIELDS']))
		{
			if (isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']))
			{
				if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::PERCENTAGE)
				{
					$discountValue = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE']), 2).'%';
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountIsSet = true;
				}
				else if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::MONETARY)
				{
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountValue = SaleFormatCurrency($discountSum, $arBasket["CURRENCY"], false);
					$discountIsSet = true;
				}
			}
		}
		if ($discountIsSet && $discountSum > 0)
			$bShowDiscount = true;
		unset($discountIsSet);

		if ($bShowDiscount
			&& isset($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_NETTO'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_BRUTTO']))
		{
			if ($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'] === 'Y')
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_BRUTTO"];
			else
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_NETTO"];
		}
		else
		{
			$unitPrice = $arBasket["PRICE"];
		}
		foreach ($arCols as $columnId => $caption)
		{
			$data = null;

			switch ($columnId)
			{
				case 'NUMBER':
					$data = ++$n;
					break;
				case 'NAME':
					$data = htmlspecialcharsbx($productName);
					break;
				case 'QUANTITY':
					$data = roundEx($arBasket['QUANTITY'], SALE_VALUE_PRECISION);
					break;
				case 'MEASURE':
					$data = $arBasket["MEASURE_NAME"] ? htmlspecialcharsbx($arBasket["MEASURE_NAME"]) : 'шт.';
					break;
				case 'PRICE':
					$data = SaleFormatCurrency($unitPrice, $arBasket['CURRENCY'], true);
					break;
				case 'DISCOUNT':
					$data = $discountValue;
					break;
				case 'VAT_RATE':
					$data = roundEx($arBasket['VAT_RATE'] * 100, SALE_VALUE_PRECISION)."%";
					break;
				case 'SUM':
					$data = SaleFormatCurrency($arBasket["PRICE"] * $arBasket["QUANTITY"], $arBasket["CURRENCY"], true);
					break;
				default :
					$data = ($arBasket[$columnId]) ?: '';
			}
			if ($data !== null)
				$arCells[$n][$columnId] = $data;
		}

		if(isset($arBasket["PROPS"]) && is_array($arBasket["PROPS"]))
		{
			$arProps[$n] = array();
			foreach ($arBasket["PROPS"] as $vv)
				$arProps[$n][] = htmlspecialcharsbx(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
		}

		$sum += doubleval($arBasket["PRICE"] * $arBasket["QUANTITY"]);
		$vat = max($vat, $arBasket["VAT_RATE"]);
	}
	unset($arBasket);

	if ($vat <= 0)
	{
		unset($arCols['VAT_RATE']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['VAT_RATE']);
	}

	if (!$bShowDiscount)
	{
		unset($arCols['DISCOUNT']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['DISCOUNT']);
	}

	$items = $n;

	if (CSalePaySystemAction::GetParamValue('QUOTE_TOTAL_SHOW') == 'Y')
	{
		$eps = 0.0001;
		if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum > $eps)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = "Подытог:";
			$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true);
		}

		$arTaxList = CSalePaySystemAction::GetParamValue("TAX_LIST", false);
		if(!is_array($arTaxList))
			$arTaxList = array();
		if(!empty($arTaxList))
		{
			foreach($arTaxList as &$arTaxInfo)
			{
				$arCells[++$n] = array();
				for ($i = 0; $i < $columnCount; $i++)
					$arCells[$n][$arColumnKeys[$i]] = null;

				$arCells[$n][$arColumnKeys[$columnCount-2]] = htmlspecialcharsbx(sprintf(
					"%s%s%s:",
					($arTaxInfo["IS_IN_PRICE"] == "Y") ? "В том числе " : "",
					$arTaxInfo["NAME"],
					($vat <= 0 && $arTaxInfo["IS_PERCENT"] == "Y")
						? sprintf(' (%s%%)', roundEx($arTaxInfo["VALUE"],SALE_VALUE_PRECISION))
						: ""
				));
				$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($arTaxInfo["VALUE_MONEY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true);
			}
			unset($arTaxInfo);
		}
		else
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$i] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = htmlspecialcharsbx(htmlspecialcharsbx("НДС:"));
			$arCells[$n][$arColumnKeys[$columnCount-1]] = htmlspecialcharsbx(htmlspecialcharsbx("Без НДС"));
		}

		if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"]) > 0)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = "Уже оплачено:";
			$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SUM_PAID"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true);
		}

		if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = "Скидка:";
			$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true);
		}

		$arCells[++$n] = array();
		for ($i = 0; $i < $columnCount; $i++)
			$arCells[$n][$arColumnKeys[$i]] = null;

		$arCells[$n][$arColumnKeys[$columnCount-2]] = "Итого:";
		$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true);
	}
}

?>
<table class="it" width="100%">
	<tr>
		<?foreach ($arCols as $columnId => $col):?>
			<td><?=$col['NAME'];?></td>
		<?endforeach;?>
	</tr>
<?

$rowsCnt = count($arCells);
for ($n = 0; $n <= $rowsCnt; $n++)
{
	$accumulated = 0;

?>
	<tr valign="top">
	<?foreach ($arCols as $columnId => $col):?>
		<?
			if (!is_null($arCells[$n][$columnId]))
			{
				if ($columnId === 'NUMBER')
				{?>
					<td align="center"><?=$arCells[$n][$columnId];?></td>
				<?}
				elseif ($columnId === 'NAME')
				{
				?>
					<td align="<?=($n > $items) ? 'right' : 'left';?>"
						style="word-break: break-word; word-wrap: break-word; <? if ($accumulated) {?>border-width: 0pt 1pt 0pt 0pt; <? } ?>"
						<? if ($accumulated) { ?>colspan="<?=($accumulated+1); ?>"<? $accumulated = 0; } ?>>
						<?=$arCells[$n][$columnId]; ?>
						<? if (isset($arProps[$n]) && is_array($arProps[$n])) { ?>
						<? foreach ($arProps[$n] as $property) { ?>
						<br>
						<small><?=$property; ?></small>
						<? } ?>
						<? } ?>
					</td>
				<?}
				else
				{
					if (!is_null($arCells[$n][$columnId]))
					{
						if ($columnId != 'VAT_RATE' ||$columnId != 'DISCOUNT' || $vat > 0 || is_null($arCells[$n][$columnId]) || $n > $items)
						{ ?>
							<td align="right"
								<? if ($accumulated) { ?>
								style="border-width: 0pt 1pt 0pt 0pt"
								colspan="<?=(($columnId == 'VAT_RATE' && $vat <= 0) ? $accumulated : $accumulated+1); ?>"
								<? $accumulated = 0; } ?>>
								<?if ($columnId == 'SUM' || $columnId == 'PRICE'):?>
									<nobr><?=$arCells[$n][$columnId];?></nobr>
								<?else:?>
									<?=$arCells[$n][$columnId]; ?>
								<?endif;?>
							</td>
						<? }
					}
					else
					{
						$accumulated++;
					}
				}
			}
			else
			{
				$accumulated++;
			}
		?>
	<?endforeach;?>
	</tr>
<?

}

?>
</table>
<br>
<?if (CSalePaySystemAction::GetParamValue('QUOTE_TOTAL_SHOW') == 'Y'):?>
	<?=sprintf(
		"Всего наименований %s, на сумму %s",
		$items,
		SaleFormatCurrency(
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
			false
		)
	); ?>
	<br>

	<b>
	<?

	if (in_array($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], array("RUR", "RUB")))
	{
		echo Number2Word_Rus($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"]);
	}
	else
	{
		echo SaleFormatCurrency(
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
			false
		);
	}
endif;

$sellerInfo = array(
	'NAME' => CSalePaySystemAction::GetParamValue("SELLER_NAME", false),
	'ADDRESS' => CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false),
	'PHONE' => CSalePaySystemAction::GetParamValue("SELLER_PHONE", false),
	'EMAIL' => CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false),
	'INN' => CSalePaySystemAction::GetParamValue("SELLER_INN", false),
	'KPP' => CSalePaySystemAction::GetParamValue("SELLER_KPP", false),
	'RS' => CSalePaySystemAction::GetParamValue("SELLER_RS", false),
	'BANK' => CSalePaySystemAction::GetParamValue("SELLER_BANK", false),
	'BIK' => CSalePaySystemAction::GetParamValue("SELLER_BIK", false),
	'BANK_CITY' => CSalePaySystemAction::GetParamValue("SELLER_BCITY", false),
	'KS' => CSalePaySystemAction::GetParamValue("SELLER_KS", false),

);

$customerInfo = array(
	'NAME' => CSalePaySystemAction::GetParamValue("BUYER_NAME", false),
	'ADDRESS' => CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false),
	'PAYER_NAME' => CSalePaySystemAction::GetParamValue("BUYER_PAYER_NAME", false),
	'PHONE' => CSalePaySystemAction::GetParamValue("BUYER_PHONE", false),
	'FAX' => CSalePaySystemAction::GetParamValue("BUYER_FAX", false),
	'EMAIL' => CSalePaySystemAction::GetParamValue("BUYER_EMAIL", false),
	'INN' => CSalePaySystemAction::GetParamValue("BUYER_INN", false)
);

$cols = array(array(), array());
$colRows = array(0, 0);
$boldCount = -1;

$text = '';
if($sellerInfo['NAME'] || $customerInfo['NAME'])
{
	$boldCount = 0;
	$text = (is_string($sellerInfo['NAME']) && strlen($sellerInfo['NAME']) > 0) ? $sellerInfo['NAME'] : '';
	$cols[0][$colRows[0]++] = $text;
	$text = (is_string($customerInfo['NAME']) && strlen($customerInfo['NAME']) > 0) ? $customerInfo['NAME'] : '';
	$cols[1][$colRows[1]++] = $text;
	$boldCount = max($colRows);
}
if($sellerInfo['ADDRESS'] || $customerInfo['ADDRESS'])
{
	$i = 0;
	foreach (array($sellerInfo['ADDRESS'], $customerInfo['ADDRESS']) as $text)
	{
		if ($text)
		{
			if (is_array($text))
			{
				$text = implode(', ', $text);
			}
			else
			{
				$text = str_replace(array("\r\n", "\n", "\r"), ', ', strval($text));
			}
			$text = 'Адрес'.': '.$text;
			$cols[$i][$colRows[$i]++] = $text;
		}
		$i++;
	}
	unset($i);
}
if($customerInfo['PAYER_NAME'])
{
	$text = 'Контактное лицо'.': '.$customerInfo['PAYER_NAME'];
	$cols[1][$colRows[1]++] = $text;
}
if($sellerInfo['PHONE'] || $customerInfo['PHONE'])
{
	$i = 0;
	foreach (array($sellerInfo['PHONE'], $customerInfo['PHONE']) as $text)
	{
		if ($text)
		{
			$text = 'Телефон'.': '.$text;
			$cols[$i][$colRows[$i]++] = $text;
		}
		$i++;
	}
	unset($i);
}
if($customerInfo['FAX'])
{
	$text = 'Факс'.': '.$customerInfo['FAX'];
	$cols[1][$colRows[1]++] = $text;
}
if($sellerInfo['EMAIL'] || $customerInfo['EMAIL'])
{
	$i = 0;
	foreach (array($sellerInfo['EMAIL'], $customerInfo['EMAIL']) as $text)
	{
		if ($text)
		{
			$text = 'E-mail: '.$text;
			$cols[$i][$colRows[$i]++] = $text;
		}
		$i++;
	}
	unset($i);
}
if($sellerInfo['INN'] || $customerInfo['INN'])
{
	$i = 0;
	foreach (array($sellerInfo['INN'], $customerInfo['INN']) as $text)
	{
		if ($text)
		{
			$text = 'ИНН'.': '.$text;
			$cols[$i][$colRows[$i]++] = $text;
		}
		$i++;
	}
	unset($i);
}
if($sellerInfo['KPP'])
{
	$text = 'КПП'.': '.$sellerInfo['KPP'];
	$cols[0][$colRows[0]++] = $text;
}
if($sellerInfo['RS'])
{
	$text = 'Расчётный счёт'.': '.$sellerInfo['RS'];
	$cols[0][$colRows[0]++] = $text;
}
if($sellerInfo['BANK'])
{
	$text = '';
	if ($sellerInfo['BANK_CITY'])
	{
		$text = $sellerInfo['BANK_CITY'];
		if (is_array($text))
		{
			$text = implode(', ', $text);
		}
		else
		{
			$text = str_replace(array("\r\n", "\n", "\r"), ', ', strval($text));
		}
	}
	$text = 'Банк'.': '.
		strval($sellerInfo['BANK']).($text ? ', '.$text : '');
	$cols[0][$colRows[0]++] = $text;
}
if($sellerInfo['BIK'])
{
	$text = 'БИК'.': '.$sellerInfo['BIK'];
	$cols[0][$colRows[0]++] = $text;
}
if($sellerInfo['KS'])
{
	$text = 'Корреспондентский счет'.': '.$sellerInfo['KS'];
	$cols[0][$colRows[0]++] = $text;
}
unset($text);

?><br><br><?
$nCols = 2;
$nRows = max($colRows[0], $colRows[1]);
$showTable = ($nRows > 0);
if ($showTable)
{
?>
<table class="rq" width="100%">
	<colgroup>
		<col width="50%">
		<col width="50%">
	</colgroup>
	<tr>
<?
}
for ($col = 0; $col < $nCols; $col++)
{
	?><td><?
	for ($i = 0; $i < $nRows; $i++)
	{
		if (isset($cols[$col][$i]))
		{
			?><div><? echo ($i < $boldCount ? '<b>' : '').$cols[$col][$i].($i < $boldCount ? '</b>' : ''); ?></div><?
		}
	}
	?></td><?
}
unset($cols, $colRows, $boldCount, $nRows, $i);
if ($showTable)
{
?>
	</tr>
</table>
<?
}
?><br><br><?
unset($cols, $colRows, $boldCount, $nCols, $nRows, $showTable);
if (CSalePaySystemAction::GetParamValue('QUOTE_SIGN_SHOW') == 'Y'):?>
	<? if (!$blank) { ?>
	<div style="position: relative; "><?=CFile::ShowImage(
		CSalePaySystemAction::GetParamValue("PATH_TO_STAMP", false),
		160, 160,
		'style="position: absolute; left: 40pt; "'
	); ?></div>
	<? } ?>

	<div style="position: relative">
		<table class="sign">
			<? if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false)) { ?>
			<tr>
				<td style="width: 150pt; "><?=CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false); ?></td>
				<td style="width: 160pt; border: 1pt solid #000000; border-width: 0pt 0pt 1pt 0pt; text-align: center; ">
					<? if (!$blank) { ?>
					<?=CFile::ShowImage(CSalePaySystemAction::GetParamValue("SELLER_DIR_SIGN", false), 200, 50); ?>
					<? } ?>
				</td>
				<td>
					<? if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false)) { ?>
					(<?=CSalePaySystemAction::GetParamValue("SELLER_DIR", false); ?>)
					<? } ?>
				</td>
			</tr>
			<tr><td colspan="3">&nbsp;</td></tr>
			<? } ?>
			<? if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false)) { ?>
			<tr>
				<td style="width: 150pt; "><?=CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false); ?></td>
				<td style="width: 160pt; border: 1pt solid #000000; border-width: 0pt 0pt 1pt 0pt; text-align: center; ">
					<? if (!$blank) { ?>
					<?=CFile::ShowImage(CSalePaySystemAction::GetParamValue("SELLER_ACC_SIGN", false), 200, 50); ?>
					<? } ?>
				</td>
				<td>
					<? if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false)) { ?>
					(<?=CSalePaySystemAction::GetParamValue("SELLER_ACC", false); ?>)
					<? } ?>
				</td>
			</tr>
			<? } ?>
		</table>
	</div>
<?endif;?>
</div>

</body>
</html>include/sale_payment/quote_ru/en/quote.php000066400000013366147714176230015012 0ustar00<?
$MESS["SBLP_DTITLE"] = "Quote (Russian)";
$MESS["SBLP_DDESCR"] = "Quote for printing. Will open in a new window.";

$MESS["SBLP_DATE"] = "Quote date";
$MESS["SBLP_DATE_DESC"] = "The date the quote was created";
$MESS["SBLP_ORDER_SUBJECT"] = "Subject";
$MESS["SBLP_PAY_BEFORE"] = "Pay by";
$MESS["SBLP_PAY_BEFORE_DESC"] = "Quote valid until";
$MESS["SBLP_SUPPLI"] = "Seller";
$MESS["SBLP_SUPPLI_DESC"] = "Name of the payee or seller";
$MESS["SBLP_ADRESS_SUPPLI"] = "Seller's address";
$MESS["SBLP_ADRESS_SUPPLI_DESC"] = "Physical address of seller";
$MESS["SBLP_PHONE_SUPPLI"] = "Seller telephone";
$MESS["SBLP_PHONE_SUPPLI_DESC"] = "Telephone number of seller";
$MESS["SBLP_EMAIL_SUPPLI"] = "Supplier e-mail address";
$MESS["SBLP_EMAIL_SUPPLI_DESC"] = "Supplier (seller) e-mail address";
$MESS["SBLP_INN_SUPPLI"] = "Supplier tax ID";
$MESS["SBLP_INN_SUPPLI_DESC"] = "Supplier tax ID";
$MESS["SBLP_KPP_SUPPLI"] = "Supplier tax category code";
$MESS["SBLP_KPP_SUPPLI_DESC"] = "Not applicable in all countries";
$MESS["SBLP_ORDER_SUPPLI"] = "Supplier account no.";
$MESS["SBLP_ORDER_SUPPLI_DESC"] = "Supplier (seller) account no.";
$MESS["SBLP_ORDER_SUPPLI_VAL"] = "Account number";
$MESS["SBLP_KORORDER_SUPPLI"] = "Correspondent account no.";
$MESS["SBLP_KORORDER_SUPPLI_DESC"] = "Supplier (seller) correspondent account number";
$MESS["SBLP_BANK_SUPPLI"] = "Name of Seller's bank";
$MESS["SBLP_BANK_SUPPLI_DESC"] = "Name of bank where seller's account is located";
$MESS["SBLP_BCITY_SUPPLI"] = "Bank city";
$MESS["SBLP_BCITY_SUPPLI_DESC"] = "Supplier (seller) bank city";
$MESS["SBLP_BIK_SUPPLI"] = "SWIFT or BIC";
$MESS["SBLP_BIK_SUPPLI_DESC"] = "Supplier bank SWIFT or BIC";

$MESS["SBLP_DIR_POS_SUPPLI"] = "Supervisor job position";
$MESS["SBLP_DIR_POS_SUPPLI_DESC"] = "Supervisor job position (sales)";
$MESS["SBLP_DIR_POS_SUPPLI_VAL"] = "Director";
$MESS["SBLP_ACC_POS_SUPPLI"] = "Accountant job position";
$MESS["SBLP_ACC_POS_SUPPLI_DESC"] = "Accountant job position (sales)";
$MESS["SBLP_ACC_POS_SUPPLI_VAL"] = "Accountant";

$MESS["SBLP_DIR_SUPPLI"] = "Supervisor full name";
$MESS["SBLP_DIR_SUPPLI_DESC"] = "Supervisor (sales) full name";
$MESS["SBLP_ACC_SUPPLI"] = "Accountant full name";
$MESS["SBLP_ACC_SUPPLI_DESC"] = "Accountant (sales) full name";

$MESS["SBLP_CUSTOMER"] = "Buyer";
$MESS["SBLP_CUSTOMER_DESC"] = "Name of paying company / Payer";
$MESS["SBLP_CUSTOMER_INN"] = "Customer IDN";
$MESS["SBLP_CUSTOMER_INN_DESC"] = "Customer IDN";
$MESS["SBLP_CUSTOMER_ADRES"] = "Buyer's address";
$MESS["SBLP_CUSTOMER_ADRES_DESC"] = "Address of the payee";
$MESS["SBLP_CUSTOMER_PHONE"] = "Buyer telephone";
$MESS["SBLP_CUSTOMER_PHONE_DESC"] = "Telephone number of the buyer";
$MESS["SBLP_CUSTOMER_FAX"] = "Fax of Buyer";
$MESS["SBLP_CUSTOMER_FAX_DESC"] = "Fax number of Buyer";
$MESS["SBLP_CUSTOMER_EMAIL"] = "E-mail of Buyer";
$MESS["SBLP_CUSTOMER_EMAIL_DESC"] = "E-mail address of Buyer";
$MESS["SBLP_CUSTOMER_PERSON"] = "Contact person";
$MESS["SBLP_CUSTOMER_PERSON_DESC"] = "Contact person for the Buyer";
$MESS["SBLP_PRINT"] = "Stamp";
$MESS["SBLP_PRINT_DESC"] = "Supplier stamp image (recommended display size: 150x150)";
$MESS["SBLP_LOGO"] = "Supplier logo";
$MESS["SBLP_LOGO_DESC"] = "Supplier log (recommended size: 80x80)";

$MESS["SBLP_DIR_SIGN_SUPPLI"] = "Signature of Director";
$MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Electronic signature of director (recommended size: 200x50)";
$MESS["SBLP_ACC_SIGN_SUPPLI"] = "Signature of Accountant";
$MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Electronic signature of accountant (recommended size: 200x50)";

$MESS["SBLP_BACKGROUND"] = "Background";
$MESS["SBLP_BACKGROUND_DESC"] = "Background image for invoices (recommended size: 800x1120)";

$MESS["SBLP_BACKGROUND_STYLE"] = "Background image style";
$MESS["SBLP_BACKGROUND_STYLE_NONE"] = "None";
$MESS["SBLP_BACKGROUND_STYLE_TILE"] = "Tile";
$MESS["SBLP_BACKGROUND_STYLE_STRETCH"] = "Full screen";

$MESS["SBLP_MARGIN_TOP"] = "Top margin";
$MESS["SBLP_MARGIN_RIGHT"] = "Right margin";
$MESS["SBLP_MARGIN_BOTTOM"] = "Bottom margin";
$MESS["SBLP_MARGIN_LEFT"] = "Left margin";

$MESS["SBLP_COMMENT1"] = "Comment 1";
$MESS["SBLP_COMMENT2"] = "Comment 2";
$MESS["SBLP_USERFIELD1"] = "Custom field 1";
$MESS["SBLP_USERFIELD2"] = "Custom field 2";
$MESS["SBLP_USERFIELD3"] = "Custom field 3";
$MESS["SBLP_USERFIELD4"] = "Custom field 4";
$MESS["SBLP_USERFIELD5"] = "Custom field 5";

$MESS["SBLP_LOGO_DPI"] = "Logo scale";
$MESS["SBLP_LOGO_DPI_72"] = "133% (72 dpi)";
$MESS["SBLP_LOGO_DPI_96"] = "100% (96 dpi)";
$MESS["SBLP_LOGO_DPI_150"] = "64% (150 dpi)";
$MESS["SBLP_LOGO_DPI_300"] = "32% (300 dpi)";
$MESS["SBLP_LOGO_DPI_600"] = "16% (600 dpi)";

$MESS["SBLP_Q_RU_COLUMN_NUMBER_TITLE"] = "\"#\" column title";
$MESS["SBLP_Q_RU_COLUMN_NUMBER_VALUE"] = "#";

$MESS["SBLP_Q_RU_COLUMN_NAME_TITLE"] = "\"Product name\" column title";
$MESS["SBLP_Q_RU_COLUMN_NAME_VALUE"] = "Product name";

$MESS["SBLP_Q_RU_COLUMN_QUANTITY_TITLE"] = "\"Quantity\" column title";
$MESS["SBLP_Q_RU_COLUMN_QUANTITY_VALUE"] = "Quantity";

$MESS["SBLP_Q_RU_COLUMN_MEASURE_TITLE"] = "\"Unit of measurement\" column title";
$MESS["SBLP_Q_RU_COLUMN_MEASURE_VALUE"] = "Unit";

$MESS["SBLP_Q_RU_COLUMN_PRICE_TITLE"] = "\"Price\" column title";
$MESS["SBLP_Q_RU_COLUMN_PRICE_VALUE"] = "Price";

$MESS["SBLP_Q_RU_COLUMN_SUM_TITLE"] = "\"Amount\" column title";
$MESS["SBLP_Q_RU_COLUMN_SUM_VALUE"] = "Amount";

$MESS["SBLP_Q_RU_COLUMN_VAT_RATE_TITLE"] = "\"Tax rate\" column title";
$MESS["SBLP_Q_RU_COLUMN_VAT_RATE_VALUE"] = "Tax rate";

$MESS["SBLP_Q_RU_COLUMN_DISCOUNT_TITLE"] = "\"Discount\" column title";
$MESS["SBLP_Q_RU_COLUMN_DISCOUNT_VALUE"] = "Discount";

$MESS["SBLP_Q_RU_COLUMN_SHOW"] = "Active";
$MESS["SBLP_Q_RU_COLUMN_SORT"] = "Sort";
$MESS["SBLP_Q_RU_HEADER_SHOW"] = "Show quote header";
$MESS["SBLP_Q_RU_TOTAL_SHOW"] = "Show summary";
$MESS["SBLP_Q_RU_SIGN_SHOW"] = "Show signatures";
include/sale_payment/quote_ru/payment.php000066400000000324147714176230014716 0ustar00<?

CCurrencyLang::disableUseHideZero();

if (!empty($_REQUEST['pdf']))
	return include(dirname(__FILE__).'/pdf.php');
else
	return include(dirname(__FILE__).'/html.php');

CCurrencyLang::enableUseHideZero();

?>include/sale_payment/quote_ru/ru/quote.php000066400000021340147714176230015025 0ustar00<?
$MESS["SBLP_DTITLE"] = "Коммерческое предложение";
$MESS["SBLP_DDESCR"] = "Коммерческое предложение для распечатки. Должно открываться в новом окне.";

$MESS["SBLP_DATE"] = "Дата оформления";
$MESS["SBLP_DATE_DESC"] = "Дата оформления предложения";
$MESS["SBLP_ORDER_SUBJECT"] = "Назначение";
$MESS["SBLP_PAY_BEFORE"] = "Срок оплаты";
$MESS["SBLP_PAY_BEFORE_DESC"] = "Срок оплаты предложения";
$MESS["SBLP_SUPPLI"] = "Название компании-поставщика";
$MESS["SBLP_SUPPLI_DESC"] = "Название компании-поставщика (продавца)";
$MESS["SBLP_ADRESS_SUPPLI"] = "Адрес компании-поставщика";
$MESS["SBLP_ADRESS_SUPPLI_DESC"] = "Адрес компании-поставщика (продавца)";
$MESS["SBLP_PHONE_SUPPLI"] = "Телефон компании-поставщика";
$MESS["SBLP_PHONE_SUPPLI_DESC"] = "Телефон компании-поставщика (продавца)";
$MESS["SBLP_EMAIL_SUPPLI"] = "E-mail компании-поставщика";
$MESS["SBLP_EMAIL_SUPPLI_DESC"] = "E-mail компании-поставщика (продавца)";
$MESS["SBLP_INN_SUPPLI"] = "ИНН компании-поставщика";
$MESS["SBLP_INN_SUPPLI_DESC"] = "ИНН компании-поставщика (продавца)";
$MESS["SBLP_KPP_SUPPLI"] = "КПП компании-поставщика";
$MESS["SBLP_KPP_SUPPLI_DESC"] = "КПП компании-поставщика (продавца)";
$MESS["SBLP_ORDER_SUPPLI"] = "Расчетный счет компании-поставщика";
$MESS["SBLP_ORDER_SUPPLI_DESC"] = "Расчетный счет компании-поставщика (продавца)";
$MESS["SBLP_ORDER_SUPPLI_VAL"] = "р/с";
$MESS["SBLP_KORORDER_SUPPLI"] = "Корреспондентский счет";
$MESS["SBLP_KORORDER_SUPPLI_DESC"] = "Корреспондентский счет компании-поставщика (продавца)";
$MESS["SBLP_BANK_SUPPLI"] = "Банк поставщика";
$MESS["SBLP_BANK_SUPPLI_DESC"] = "Банк для р/с компании-поставщика (продавца)";
$MESS["SBLP_BCITY_SUPPLI"] = "Город банка";
$MESS["SBLP_BCITY_SUPPLI_DESC"] = "Город банка для р/с компании-поставщика (продавца)";
$MESS["SBLP_BIK_SUPPLI"] = "БИК";
$MESS["SBLP_BIK_SUPPLI_DESC"] = "БИК компании-поставщика (продавца)";

$MESS["SBLP_DIR_POS_SUPPLI"] = "Должность руководителя";
$MESS["SBLP_DIR_POS_SUPPLI_DESC"] = "Должность руководителя (продавца)";
$MESS["SBLP_DIR_POS_SUPPLI_VAL"] = "Генеральный директор";
$MESS["SBLP_ACC_POS_SUPPLI"] = "Должность бухгалтера";
$MESS["SBLP_ACC_POS_SUPPLI_DESC"] = "Должность бухгалтера (продавца)";
$MESS["SBLP_ACC_POS_SUPPLI_VAL"] = "Главный бухгалтер";

$MESS["SBLP_DIR_SUPPLI"] = "ФИО руководителя";
$MESS["SBLP_DIR_SUPPLI_DESC"] = "ФИО руководителя (продавца)";
$MESS["SBLP_ACC_SUPPLI"] = "ФИО бухгалтера";
$MESS["SBLP_ACC_SUPPLI_DESC"] = "ФИО бухгалтера (продавца)";

$MESS["SBLP_CUSTOMER"] = "Название компании-заказчика";
$MESS["SBLP_CUSTOMER_DESC"] = "Название компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_INN"] = "ИНН компании-заказчика";
$MESS["SBLP_CUSTOMER_INN_DESC"] = "ИНН компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_ADRES"] = "Адрес компании-заказчика";
$MESS["SBLP_CUSTOMER_ADRES_DESC"] = "Адрес компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_PHONE"] = "Телефон компании-заказчика";
$MESS["SBLP_CUSTOMER_PHONE_DESC"] = "Телефон компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_FAX"] = "Факс компании-заказчика";
$MESS["SBLP_CUSTOMER_FAX_DESC"] = "Факс компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_EMAIL"] = "E-mail компании-заказчика";
$MESS["SBLP_CUSTOMER_EMAIL_DESC"] = "E-mail компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_PERSON"] = "Контактное лицо компании-заказчика";
$MESS["SBLP_CUSTOMER_PERSON_DESC"] = "Контактное лицо компании-заказчика (покупателя)";
$MESS["SBLP_PRINT"] = "Печать (рекомендуемые размеры 150x150&nbsp;px)";
$MESS["SBLP_PRINT_DESC"] = "Изображение печати поставщика на сайте";
$MESS["SBLP_LOGO"] = "Логотип компании-поставщика (рекомендуемые размеры 80x80&nbsp;px)";
$MESS["SBLP_LOGO_DESC"] = "Логотип компании-поставщика";

$MESS["SBLP_DIR_SIGN_SUPPLI"] = "Подпись генерального директора (рекомендуемые размеры 200x50&nbsp;px)";
$MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Изображение подписи генерального директора";
$MESS["SBLP_ACC_SIGN_SUPPLI"] = "Подпись главного бухгалтера (рекомендуемые размеры 200x50&nbsp;px)";
$MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Изображение подписи главного бухгалтера";

$MESS["SBLP_BACKGROUND"] = "Фон (рекомендуемые размеры 800x1120&nbsp;px)";
$MESS["SBLP_BACKGROUND_DESC"] = "Изображение фона для счета";

$MESS["SBLP_BACKGROUND_STYLE"] = "Стиль отображения фона";
$MESS["SBLP_BACKGROUND_STYLE_NONE"] = "Как есть";
$MESS["SBLP_BACKGROUND_STYLE_TILE"] = "Замостить";
$MESS["SBLP_BACKGROUND_STYLE_STRETCH"] = "Растянуть";

$MESS["SBLP_MARGIN_TOP"] = "Отступ сверху страницы (мм)";
$MESS["SBLP_MARGIN_RIGHT"] = "Отступ справа страницы (мм)";
$MESS["SBLP_MARGIN_BOTTOM"] = "Отступ снизу страницы (мм)";
$MESS["SBLP_MARGIN_LEFT"] = "Отступ слева страницы (мм)";

$MESS["SBLP_COMMENT1"] = "Комментарий 1";
$MESS["SBLP_COMMENT2"] = "Комментарий 2";
$MESS["SBLP_USERFIELD1"] = "Пользовательское поле 1";
$MESS["SBLP_USERFIELD2"] = "Пользовательское поле 2";
$MESS["SBLP_USERFIELD3"] = "Пользовательское поле 3";
$MESS["SBLP_USERFIELD4"] = "Пользовательское поле 4";
$MESS["SBLP_USERFIELD5"] = "Пользовательское поле 5";

$MESS["SBLP_LOGO_DPI"] = "Масштаб логотипа";
$MESS["SBLP_LOGO_DPI_72"] = "133% (72 dpi)";
$MESS["SBLP_LOGO_DPI_96"] = "100% (96 dpi)";
$MESS["SBLP_LOGO_DPI_150"] = "64% (150 dpi)";
$MESS["SBLP_LOGO_DPI_300"] = "32% (300 dpi)";
$MESS["SBLP_LOGO_DPI_600"] = "16% (600 dpi)";

$MESS["SBLP_Q_RU_COLUMN_NUMBER_TITLE"] = "Заголовок для колонки \"№\"";
$MESS["SBLP_Q_RU_COLUMN_NUMBER_VALUE"] = "№";

$MESS["SBLP_Q_RU_COLUMN_NAME_TITLE"] = "Заголовок для колонки \"Наименование товара\"";
$MESS["SBLP_Q_RU_COLUMN_NAME_VALUE"] = "Наименование товара";

$MESS["SBLP_Q_RU_COLUMN_QUANTITY_TITLE"] = "Заголовок для колонки \"Кол-во\"";
$MESS["SBLP_Q_RU_COLUMN_QUANTITY_VALUE"] = "Кол-во";

$MESS["SBLP_Q_RU_COLUMN_MEASURE_TITLE"] = "Заголовок для колонки \"Ед.\"";
$MESS["SBLP_Q_RU_COLUMN_MEASURE_VALUE"] = "Ед.";

$MESS["SBLP_Q_RU_COLUMN_PRICE_TITLE"] = "Заголовок для колонки \"Цена\"";
$MESS["SBLP_Q_RU_COLUMN_PRICE_VALUE"] = "Цена";

$MESS["SBLP_Q_RU_COLUMN_SUM_TITLE"] = "Заголовок для колонки \"Сумма\"";
$MESS["SBLP_Q_RU_COLUMN_SUM_VALUE"] = "Сумма";

$MESS["SBLP_Q_RU_COLUMN_VAT_RATE_TITLE"] = "Заголовок для колонки \"Ставка НДС\"";
$MESS["SBLP_Q_RU_COLUMN_VAT_RATE_VALUE"] = "Ставка НДС";

$MESS["SBLP_Q_RU_COLUMN_DISCOUNT_TITLE"] = "Заголовок для колонки \"Скидка\"";
$MESS["SBLP_Q_RU_COLUMN_DISCOUNT_VALUE"] = "Скидка";

$MESS["SBLP_Q_RU_COLUMN_SHOW"] = "Активность";
$MESS["SBLP_Q_RU_COLUMN_SORT"] = "Сортировка";
$MESS["SBLP_Q_RU_HEADER_SHOW"] = "Выводить шапку предложения";
$MESS["SBLP_Q_RU_TOTAL_SHOW"] = "Выводить итоговую информацию";
$MESS["SBLP_Q_RU_SIGN_SHOW"] = "Показывать подписи";include/sale_payment/quote_ru/pdf.php000066400000102404147714176230014014 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
$arPaySysAction["ENCODING"] = "";
if (!CSalePdf::isPdfAvailable())
	die();

if ($_REQUEST['BLANK'] == 'Y')
	$blank = true;
/** @var CSaleTfpdf $pdf */
$pdf = new CSalePdf('P', 'pt', 'A4');
if (CSalePaySystemAction::GetParamValue('BACKGROUND', false))
{
	$pdf->SetBackground(
		CSalePaySystemAction::GetParamValue('BACKGROUND', false),
		CSalePaySystemAction::GetParamValue('BACKGROUND_STYLE', false)
	);
}

$pageWidth  = $pdf->GetPageWidth();
$pageHeight = $pdf->GetPageHeight();

$pdf->AddFont('Font', '', 'pt_sans-regular.ttf', true);
$pdf->AddFont('Font', 'B', 'pt_sans-bold.ttf', true);

$fontFamily = 'Font';
$fontSize   = 10.5;

$margin = array(
	'top' => intval(CSalePaySystemAction::GetParamValue('MARGIN_TOP', false) ?: 15) * 72/25.4,
	'right' => intval(CSalePaySystemAction::GetParamValue('MARGIN_RIGHT', false) ?: 15) * 72/25.4,
	'bottom' => intval(CSalePaySystemAction::GetParamValue('MARGIN_BOTTOM', false) ?: 15) * 72/25.4,
	'left' => intval(CSalePaySystemAction::GetParamValue('MARGIN_LEFT', false) ?: 20) * 72/25.4
);

$width = $pageWidth - $margin['left'] - $margin['right'];

$pdf->SetDisplayMode(100, 'continuous');
$pdf->SetMargins($margin['left'], $margin['top'], $margin['right']);
$pdf->SetAutoPageBreak(true, $margin['bottom']);

$pdf->AddPage();
$pdf->SetFont($fontFamily, 'B', $fontSize);

$y0 = $pdf->GetY();
$logoHeight = 0;
$logoWidth = 0;
if (CSalePaySystemAction::GetParamValue('QUOTE_HEADER_SHOW') == 'Y')
{
	if (CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false))
	{
		list($imageHeight, $imageWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false));

		$imgDpi = intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96;
		$imgZoom = 96 / $imgDpi;

		$logoHeight = $imageHeight * $imgZoom + 5;
		$logoWidth  = $imageWidth * $imgZoom + 5;

		$pdf->Image(CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false), $pdf->GetX(), $pdf->GetY(), -$imgDpi, -$imgDpi);
	}

	// region Seller info
	$topLogo = false;
	$minTextWidth = 20;
	$textWidth = $width - $logoWidth - 10;

	if ($textWidth < $minTextWidth)
		$topLogo = true;

	if ($topLogo)
	{
		$textLeftMargin = 0;
		$textWidth = $width - 10;
		$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
		$pdf->Ln(10);
	}
	else
	{
		$textLeftMargin = $logoWidth;
	}

	$sellerName =  CSalePaySystemAction::GetParamValue("SELLER_NAME", false);
	if($sellerName)
	{
		$text = CSalePdf::prepareToPdf($sellerName);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'R');
			$pdf->Ln();
		}
		unset($text, $string);
	}

	$sellerAddr = CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false);
	if($sellerAddr)
	{
		if (is_array($sellerAddr))
			$sellerAddr = implode(', ', $sellerAddr);
		else
			$sellerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerAddr));
			$text = CSalePdf::prepareToPdf($sellerAddr);
			while ($pdf->GetStringWidth($text))
			{
				list($string, $text) = $pdf->splitString($text, $textWidth);
				$pdf->SetX($pdf->GetX() + $textLeftMargin);
				$pdf->Cell($textWidth, 15, $string, 0, 0, 'R');
				$pdf->Ln();
			}
			unset($text, $string);
		}

	$sellerPhone = CSalePaySystemAction::GetParamValue("SELLER_PHONE", false);
	if($sellerPhone)
	{
		$sellerPhone = sprintf("Тел.: %s", $sellerPhone);
		$text = CSalePdf::prepareToPdf($sellerPhone);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'R');
			$pdf->Ln();
		}
		unset($text, $string);
	}

	$sellerEmail = CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false);
	if($sellerEmail)
	{
		$sellerEmail = sprintf("E-mail: %s", $sellerEmail);
		$text = CSalePdf::prepareToPdf($sellerEmail);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'R');
			$pdf->Ln();
		}
		unset($text, $string);
	}

	if (!$topLogo)
	{
		$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
		$pdf->Ln(10);
	}

	unset($topLogo, $minTextWidth, $textWidth, $textLeftMargin);
	// endregion Seller info

	$pdf->SetFont($fontFamily, '', $fontSize);
	$pdf->Ln();

	$pdf->SetFont($fontFamily, 'B', $fontSize*1.5);
	$billNo_tmp = CSalePdf::prepareToPdf(sprintf(
		"КОММЕРЧЕСКОЕ ПРЕДЛОЖЕНИЕ № %s от %s",
		$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"],
		CSalePaySystemAction::GetParamValue("DATE_INSERT", false)
	));
	$billNo_width = $pdf->GetStringWidth($billNo_tmp);
	$pdf->Cell(0, 20, $billNo_tmp, 0, 0, 'C');
	$pdf->Ln();

	$pdf->SetFont($fontFamily, '', $fontSize);
	if (CSalePaySystemAction::GetParamValue("ORDER_SUBJECT", false))
	{
		$pdf->Cell($width/2-$billNo_width/2-2, 15, '');
		$pdf->MultiCell(0, 15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
			CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("ORDER_SUBJECT", false))
		), '', array(), 0), 0, 'L');
		$pdf->Ln();
	}

	if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false))
	{
		$pdf->Cell($width/2-$billNo_width/2-2, 15, '');
		$pdf->MultiCell(0, 15, CSalePdf::prepareToPdf(sprintf(
			"Срок действия %s",
			ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false), FORMAT_DATE)
				?: CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)
		)), 0, 'L');
		$pdf->Ln();
	}
}

$userFields = array();
for($i = 1; $i <= 5; $i++)
{
	$fildValue = CSalePaySystemAction::GetParamValue("USER_FIELD_{$i}", false);
	if($fildValue)
	{
		$userFields[] = $fildValue;
	}
}

if (CSalePaySystemAction::GetParamValue("COMMENT1", false)
	|| CSalePaySystemAction::GetParamValue("COMMENT2", false)
	|| !empty($userFields))
{
	$pdf->SetFont($fontFamily, 'B', $fontSize);
	$pdf->Write(15, CSalePdf::prepareToPdf('Условия и комментарии'));
	$pdf->Ln();

	$pdf->SetFont($fontFamily, '', $fontSize);

	if (CSalePaySystemAction::GetParamValue("COMMENT1", false))
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("COMMENT1", false))
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}

	if (CSalePaySystemAction::GetParamValue("COMMENT2", false))
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("COMMENT2", false))
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}

	foreach($userFields as &$userField)
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf($userField)
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}
	unset($userField);
}
else
{
	$pdf->Ln();
}

// Список товаров
$arBasketItems = CSalePaySystemAction::GetParamValue("BASKET_ITEMS", false);
if(!is_array($arBasketItems))
	$arBasketItems = array();

$arCurFormat = CCurrencyLang::GetCurrencyFormat($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"]);
$currency = trim(str_replace('#', '', $arCurFormat['FORMAT_STRING']));

$vat = 0;
$arCols = array();
$arCells = array();

$vat = 0;
if (!empty($arBasketItems))
{
	$arCurFormat = CCurrencyLang::GetCurrencyFormat($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"]);
	$currency = trim(str_replace('#', '', $arCurFormat['FORMAT_STRING']));

	$arBasketItems = getMeasures($arBasketItems);

	$arProps = array();

	$columnList = array('NUMBER', 'NAME', 'QUANTITY', 'MEASURE', 'PRICE', 'VAT_RATE', 'DISCOUNT', 'SUM');
	$vatRateColumn = 0;
	foreach ($columnList as $column)
	{
		if (CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_SHOW') == 'Y')
		{
			$caption = CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_TITLE');
			if (in_array($column, array('PRICE', 'SUM')))
				$caption .= ', '.$currency;

			$arCols[$column] = array(
				'NAME' => CSalePdf::prepareToPdf($caption),
				'SORT' => CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_'.$column.'_SORT')
			);
		}
	}

	if (CSalePaySystemAction::GetParamValue('USER_COLUMNS'))
	{
		$userColumns = CSalePaySystemAction::GetParamValue('USER_COLUMNS');
		$columnList = array_merge($columnList, array_keys($userColumns));
		foreach ($userColumns as $id => $val)
		{
			$arCols[$id] = array(
				'NAME' => CSalePdf::prepareToPdf($val['NAME']),
				'SORT' => $val['SORT']
			);
		}
	}

	uasort($arCols, function ($a, $b) {return ($a['SORT'] < $b['SORT']) ? -1 : 1;});

	$arColumnKeys = array_keys($arCols);
	$columnCount = count($arColumnKeys);

	$n = 0;
	$sum = 0.00;

	foreach($arBasketItems as &$arBasket)
	{
		$productName = $arBasket["NAME"];
		if ($productName == "OrderDelivery")
			$productName = htmlspecialcharsbx("Доставка");
		else if ($productName == "OrderDiscount")
			$productName = htmlspecialcharsbx("Скидка");

		// discount
		$discountValue = '0%';
		$discountSum = 0.0;
		$discountIsSet = false;
		if (is_array($arBasket['CRM_PR_FIELDS']))
		{
			if (isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']))
			{
				if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::PERCENTAGE)
				{
					$discountValue = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE']), 2).'%';
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountIsSet = true;
				}
				else if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::MONETARY)
				{
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountValue = SaleFormatCurrency($discountSum, $arBasket["CURRENCY"], true);
					$discountIsSet = true;
				}
			}
		}
		if ($discountIsSet && $discountSum > 0)
			$bShowDiscount = true;
		unset($discountIsSet);

		if ($bShowDiscount
			&& isset($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_NETTO'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_BRUTTO']))
		{
			if ($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'] === 'Y')
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_BRUTTO"];
			else
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_NETTO"];
		}
		else
		{
			$unitPrice = $arBasket["PRICE"];
		}

		$arCells[++$n] = array();
		foreach ($arCols as $columnId => $caption)
		{
			$data = null;

			switch ($columnId)
			{
				case 'NUMBER':
					$data = CSalePdf::prepareToPdf($n);
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'NAME':
					$data = CSalePdf::prepareToPdf($productName);
					break;
				case 'QUANTITY':
					$data = CSalePdf::prepareToPdf(roundEx($arBasket["QUANTITY"], SALE_VALUE_PRECISION));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'MEASURE':
					$data = CSalePdf::prepareToPdf($arBasket["MEASURE_NAME"] ? $arBasket["MEASURE_NAME"] : 'шт.');
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'PRICE':
					$data = CSalePdf::prepareToPdf(SaleFormatCurrency($unitPrice, $arBasket['CURRENCY'], true));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'DISCOUNT':
					$data = CSalePdf::prepareToPdf($discountValue);
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'VAT_RATE':
					$data = CSalePdf::prepareToPdf(roundEx($arBasket["VAT_RATE"]*100, SALE_VALUE_PRECISION)."%");
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'SUM':
					$data = CSalePdf::prepareToPdf(SaleFormatCurrency($arBasket["PRICE"] * $arBasket["QUANTITY"], $arBasket["CURRENCY"], true));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				default:
					if ($arBasket[$columnId] != '' && preg_match('/[^0-9 ,\.]/', $arBasket[$columnId]) === 0)
					{
						if (!array_key_exists('IS_DIGIT', $arCols[$columnId]))
							$arCols[$columnId]['IS_DIGIT'] = true;
					}
					else
					{
						$arCols[$columnId]['IS_DIGIT'] = false;
					}
					$data = ($arBasket[$columnId]) ? CSalePdf::prepareToPdf($arBasket[$columnId]) : '';
			}
			if ($data !== null)
				$arCells[$n][$columnId] = $data;
		}

		if(isset($arBasket["PROPS"]) && is_array($arBasket["PROPS"]))
		{
			$arProps[$n] = array();
			foreach ($arBasket["PROPS"] as $vv)
				$arProps[$n][] = htmlspecialcharsbx(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
		}

		$sum += doubleval($arBasket["PRICE"] * $arBasket["QUANTITY"]);
		$vat = max($vat, $arBasket["VAT_RATE"]);
	}
	unset($arBasket);

	if ($vat <= 0)
	{
		unset($arCols['VAT_RATE']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['VAT_RATE']);
	}

	if (!$bShowDiscount)
	{
		unset($arCols['DISCOUNT']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['DISCOUNT']);
	}

	$items = $n;

	if (CSalePaySystemAction::GetParamValue('QUOTE_TOTAL_SHOW') == 'Y')
	{
		$eps = 0.0001;
		if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum > $eps)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf("Подытог:");
			$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true));
		}

		$arTaxList = CSalePaySystemAction::GetParamValue("TAX_LIST", false);
		if(!is_array($arTaxList))
			$arTaxList = array();
		if(!empty($arTaxList))
		{
			foreach($arTaxList as &$arTaxInfo)
			{

				$arCells[++$n] = array();
				for ($i = 0; $i < $columnCount; $i++)
					$arCells[$n][$arColumnKeys[$i]] = null;

				$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf(sprintf(
					"%s%s%s:",
					($arTaxInfo["IS_IN_PRICE"] == "Y") ? "В том числе " : "",
					$arTaxInfo["TAX_NAME"],
					($vat <= 0 && $arTaxInfo["IS_PERCENT"] == "Y") ? sprintf(' (%s%%)', roundEx($arTaxInfo["VALUE"],SALE_VALUE_PRECISION)) : ""
				));
				$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(CSalePdf::prepareToPdf(SaleFormatCurrency($arTaxInfo["VALUE_MONEY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true)));
			}
			unset($arTaxInfo);
		}
		else
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf("НДС:");
			$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf("Без НДС");
		}

		if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf(CSalePdf::prepareToPdf("Скидка:"));
			$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true));
		}

		$arCells[++$n] = array();
		for ($i = 0; $i < $columnCount; $i++)
			$arCells[$n][$arColumnKeys[$i]] = null;

		$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf("Итого:");
		$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], true));
	}

	$rowsInfo = $pdf->calculateRowsWidth($arCols, $arCells, $items, $width);
	$arRowsWidth = $rowsInfo['ROWS_WIDTH'];
	$arRowsContentWidth = $rowsInfo['ROWS_CONTENT_WIDTH'];
}

$x0 = $pdf->GetX();

$l = 0;
do
{
	$y0 = $pdf->GetY();
	$newLine = false;
	foreach ($arCols as $columnId => $column)
	{
		list($string, $arCols[$columnId]['NAME']) = $pdf->splitString($column['NAME'], $arRowsContentWidth[$columnId]);
		if (($vat > 0 || $columnId !== 'VAT_RATE') && ($bShowDiscount || $columnId !== 'DISCOUNT'))
			$pdf->Cell($arRowsWidth[$columnId], 20, $string, 0, 0, 'C');

		if ($arCols[$columnId]['NAME'])
			$newLine = true;

		$i = array_search($columnId, $arColumnKeys);
		${"x".($i+1)} = $pdf->GetX();
	}
	if ($arCols && $l === 0)
	{
		$y = $pdf->GetY();
		if ($y0 > $y)
			$y0 = $margin['top'];
		unset($y);
		$pdf->Line($x0, $y0, ${"x".$columnCount}, $y0);
	}

	$pdf->Ln();
	$l++;

	$y5 = $pdf->GetY();

	if ($y0 > $y5)
		$y0 = $margin['top'];

	for ($i = 0; $i <= $columnCount; $i++)
	{
		if (($vat > 0 || $arColumnKeys[$i] !== 'VAT_RATE') && ($bShowDiscount || $arColumnKeys[$i] !== 'DISCOUNT'))
			$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
	}
}
while($newLine);

if ($arCols)
	$pdf->Line($x0, $y5, ${'x'.$columnCount}, $y5);

$rowsCnt = count($arCells);
for ($n = 1; $n <= $rowsCnt; $n++)
{
	$arRowsWidth_tmp = $arRowsWidth;
	$arRowsContentWidth_tmp = $arRowsContentWidth;
	$accumulated = 0;
	$accumulatedContent = 0;
	foreach ($arCols as $columnId => $column)
	{
		if (is_null($arCells[$n][$columnId]))
		{
			$accumulated += $arRowsWidth_tmp[$columnId];
			$arRowsWidth_tmp[$columnId] = null;
			$accumulatedContent += $arRowsContentWidth_tmp[$columnId];
			$arRowsContentWidth_tmp[$columnId] = null;
		}
		else
		{
			$arRowsWidth_tmp[$columnId] += $accumulated;
			$arRowsContentWidth_tmp[$columnId] += $accumulatedContent;
			$accumulated = 0;
			$accumulatedContent = 0;
		}
	}

	$x0 = $pdf->GetX();

	$pdf->SetFont($fontFamily, '', $fontSize);

	$l = 0;
	do
	{
		$y0 = $pdf->GetY();
		$newLine = false;
		foreach ($arCols as $columnId => $column)
		{
			$string = '';
			if (!is_null($arCells[$n][$columnId]))
				list($string, $arCells[$n][$columnId]) = $pdf->splitString($arCells[$n][$columnId], $arRowsContentWidth_tmp[$columnId]);

			$rowWidth = $arRowsWidth_tmp[$columnId];

			if (in_array($columnId, array('QUANTITY', 'MEASURE', 'PRICE', 'SUM')))
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
				}
			}
			elseif ($columnId == 'NUMBER')
			{
				if (!is_null($arCells[$n][$columnId]))
					$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'C');
			}
			elseif ($columnId == 'NAME')
			{
				if (!is_null($arCells[$n][$columnId]))
					$pdf->Cell($rowWidth, 15, $string, 0, 0,  ($n > $items) ? 'R' : '');
			}
			elseif ($columnId == 'VAT_RATE')
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					if (is_null($arCells[$n][$columnId]))
						$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
					else if ($vat > 0)
						$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'R');
				}
			}
			elseif ($columnId == 'DISCOUNT')
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					if (is_null($arCells[$n][$columnId]))
						$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
					else if ($bShowDiscount)
						$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'R');
				}
			}
			else
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
				}
			}

			if ($l == 0)
			{
				$pos = array_search($columnId, $arColumnKeys);
				${'x'.($pos+1)} = $pdf->GetX();
			}

			if ($arCells[$n][$columnId])
				$newLine = true;
		}

		$pdf->Ln();
		$l++;

		$y5 = $pdf->GetY();

		if ($y0 > $y5)
			$y0 = $margin['top'];

		for ($i = ($n > $items) ? $columnCount - 1 : 0; $i <= $columnCount; $i++)
		{
			if ($vat > 0 || $arColumnKeys[$i] != 'VAT_RATE')
				$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
		}
	}
	while($newLine);

	if (CSalePaySystemAction::GetParamValue('QUOTE_COLUMN_NAME_SHOW') == 'Y')
	{
		if (isset($arProps[$n]) && is_array($arProps[$n]))
		{
			$pdf->SetFont($fontFamily, '', $fontSize - 2);
			foreach ($arProps[$n] as $property)
			{
				$y0 = $pdf->GetY();
				$i = 0;
				$line = 0;
				foreach ($arCols as $columnId => $caption)
				{
					$i++;
					if ($i == $columnCount)
						$line = 1;
					if ($columnId == 'NAME')
						$pdf->Cell($arRowsWidth_tmp[$columnId], 12, $property, 0, $line);
					else
						$pdf->Cell($arRowsWidth_tmp[$columnId], 12, '', 0, $line);
				}
				$y5 = $pdf->GetY();

				if ($y0 > $y5)
					$y0 = $margin['top'];

				for ($i = ($n > $items) ? $columnCount - 1 : 0; $i <= $columnCount; $i++)
				{
					if ($vat > 0 || $arColumnKeys[$i] != 'VAT_RATE')
						$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
				}
			}
		}
	}

	$pdf->Line(($n <= $items) ? $x0 : ${'x'.($columnCount-1)}, $y5, ${'x'.$columnCount}, $y5);
}
$pdf->Ln();


if (CSalePaySystemAction::GetParamValue('QUOTE_TOTAL_SHOW') == 'Y')
{
	$pdf->SetFont($fontFamily, '', $fontSize);
	$pdf->Write(15, CSalePdf::prepareToPdf(sprintf(
		"Всего наименований %s, на сумму %s",
		$items,
		SaleFormatCurrency(
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
			false
		)
	)));
	$pdf->Ln();

	$pdf->SetFont($fontFamily, 'B', $fontSize);
	if (in_array($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], array("RUR", "RUB")))
	{
		$pdf->Write(15, CSalePdf::prepareToPdf(Number2Word_Rus($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"])));
	}
	else
	{
		$pdf->Write(15, CSalePdf::prepareToPdf(SaleFormatCurrency(
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"],
			$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"],
			false
		)));
	}
	$pdf->Ln();
}
$sellerInfo = array(
	'NAME' => CSalePaySystemAction::GetParamValue("SELLER_NAME", false),
	'ADDRESS' => CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false),
	'PHONE' => CSalePaySystemAction::GetParamValue("SELLER_PHONE", false),
	'EMAIL' => CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false),
	'INN' => CSalePaySystemAction::GetParamValue("SELLER_INN", false),
	'KPP' => CSalePaySystemAction::GetParamValue("SELLER_KPP", false),
	'RS' => CSalePaySystemAction::GetParamValue("SELLER_RS", false),
	'BANK' => CSalePaySystemAction::GetParamValue("SELLER_BANK", false),
	'BIK' => CSalePaySystemAction::GetParamValue("SELLER_BIK", false),
	'BANK_CITY' => CSalePaySystemAction::GetParamValue("SELLER_BCITY", false),
	'KS' => CSalePaySystemAction::GetParamValue("SELLER_KS", false),

);

$customerInfo = array(
	'NAME' => CSalePaySystemAction::GetParamValue("BUYER_NAME", false),
	'ADDRESS' => CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false),
	'PAYER_NAME' => CSalePaySystemAction::GetParamValue("BUYER_PAYER_NAME", false),
	'PHONE' => CSalePaySystemAction::GetParamValue("BUYER_PHONE", false),
	'FAX' => CSalePaySystemAction::GetParamValue("BUYER_FAX", false),
	'EMAIL' => CSalePaySystemAction::GetParamValue("BUYER_EMAIL", false),
	'INN' => CSalePaySystemAction::GetParamValue("BUYER_INN", false)
);

$pdf->Ln();

$x0 = $pdf->GetX();
$y0 = $pdf->GetY();

$colWidth = $width / 2;
$textWidth = $colWidth - 5;
$sellerX = $x0;
$customerX = $x0 + $colWidth + 5;

$cols = array(array(), array());
$colRows = array(0, 0);
$boldCount = -1;

if($sellerInfo['NAME'] || $customerInfo['NAME'])
{
	$boldCount = 0;
	$text = CSalePdf::prepareToPdf($sellerInfo['NAME']);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
	if ($colRows[0] === 0)
		$cols[0][$colRows[0]++] = '';
	$text = CSalePdf::prepareToPdf($customerInfo['NAME']);
	while ($pdf->GetStringWidth($text))
	{
		list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
	if ($colRows[1] === 0)
		$cols[1][$colRows[1]++] = '';
	$boldCount = max($colRows);
	while ($colRows[0] < $boldCount)
		$cols[0][$colRows[0]++] = '';
	while ($colRows[1] < $boldCount)
		$cols[1][$colRows[1]++] = '';
	$boldCount--;
}

if ($boldCount >= 0)
	$pdf->SetFont($fontFamily, 'B', $fontSize);
else
	$pdf->SetFont($fontFamily, '', $fontSize);

if($sellerInfo['ADDRESS'] || $customerInfo['ADDRESS'])
{
	$sellerAddr = $sellerInfo['ADDRESS'];
	if($sellerAddr)
	{
		if (is_array($sellerAddr))
			$sellerAddr = implode(', ', $sellerAddr);
		else
			$sellerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerAddr));
		$text = CSalePdf::prepareToPdf('Адрес: '.$sellerAddr);
		while ($pdf->GetStringWidth($text))
			list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
	}
	unset($sellerAddr);
	$customerAddr = $customerInfo['ADDRESS'];
	if($customerAddr)
	{
		if (is_array($customerAddr))
			$customerAddr = implode(', ', $customerAddr);
		else
			$customerAddr = str_replace(array("\r\n", "\n", "\r"), ', ', strval($customerAddr));
		$text = CSalePdf::prepareToPdf('Адрес: '.$customerAddr);
		while ($pdf->GetStringWidth($text))
			list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
	unset($customerAddr);
}

if($customerInfo['PAYER_NAME'])
{
	$text = CSalePdf::prepareToPdf('Контактное лицо: '.$customerInfo['PAYER_NAME']);
	while ($pdf->GetStringWidth($text))
		list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
}

if($sellerInfo['PHONE'] || $customerInfo['PHONE'])
{
	if ($sellerInfo['PHONE'])
	{
		$text = CSalePdf::prepareToPdf('Телефон: '.$sellerInfo['PHONE']);
		while ($pdf->GetStringWidth($text))
			list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
	}
	if ($customerInfo['PHONE'])
	{
		$text = CSalePdf::prepareToPdf('Телефон: '.$customerInfo['PHONE']);
		while ($pdf->GetStringWidth($text))
			list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
}

if($customerInfo['FAX'])
{
	if ($customerInfo['FAX'])
	{
		$text = CSalePdf::prepareToPdf('Факс: '.$customerInfo['FAX']);
		while ($pdf->GetStringWidth($text))
			list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
}

if($sellerInfo['EMAIL'] || $customerInfo['EMAIL'])
{
	if ($sellerInfo['EMAIL'])
	{
		$text = CSalePdf::prepareToPdf('E-mail: '.$sellerInfo['EMAIL']);
		while ($pdf->GetStringWidth($text))
			list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
	}
	if ($customerInfo['EMAIL'])
	{
		$text = CSalePdf::prepareToPdf('E-mail: '.$customerInfo['EMAIL']);
		while ($pdf->GetStringWidth($text))
			list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
}

if($sellerInfo['INN'] || $customerInfo['INN'])
{
	if ($sellerInfo['INN'])
	{
		$text = CSalePdf::prepareToPdf('ИНН: '.$sellerInfo['INN']);
		while ($pdf->GetStringWidth($text))
			list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
	}
	if ($customerInfo['INN'])
	{
		$text = CSalePdf::prepareToPdf('ИНН: '.$customerInfo['INN']);
		while ($pdf->GetStringWidth($text))
			list($cols[1][$colRows[1]++], $text) = $pdf->splitString($text, $textWidth);
	}
}

if($sellerInfo['KPP'])
{
	$text = CSalePdf::prepareToPdf('КПП: '.$sellerInfo['KPP']);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
}

if($sellerInfo['RS'])
{
	$text = CSalePdf::prepareToPdf('Расчётный счёт: '.$sellerInfo['RS']);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
}

if($sellerInfo['BANK'])
{
	$bankName = $sellerInfo['BANK'];

	$sellerBankCity = '';
	if($sellerInfo['BANK_CITY'])
	{
		$sellerBankCity = $sellerInfo['BANK_CITY'];
		if (is_array($sellerBankCity))
			$sellerBankCity = implode(', ', $sellerBankCity);
		else
			$sellerBankCity = str_replace(array("\r\n", "\n", "\r"), ', ', strval($sellerBankCity));
		$bankName .= ', ';
		$bankName .= $sellerBankCity;
	}

	$text = CSalePdf::prepareToPdf('Банк: '.$bankName);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
}

if($sellerInfo['BIK'])
{
	$text = CSalePdf::prepareToPdf('БИК: '.$sellerInfo['BIK']);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
}

if($sellerInfo['KS'])
{
	$text = CSalePdf::prepareToPdf('Корреспондентский счет: '.$sellerInfo['KS']);
	while ($pdf->GetStringWidth($text))
		list($cols[0][$colRows[0]++], $text) = $pdf->splitString($text, $textWidth);
}

$nRows = max($colRows[0], $colRows[1]);
for ($i = 0; $i < $nRows; $i++)
{
	if (isset($cols[0][$i]))
	{
		$pdf->SetX($sellerX);
		$pdf->Cell($textWidth, 18, $cols[0][$i], 0, 'L');
	}
	if (isset($cols[1][$i]))
	{
		$pdf->SetX($customerX);
		$pdf->Cell($textWidth, 18, $cols[1][$i], 0, 'L');
	}
	$pdf->Ln();
	if ($i === $boldCount)
	{
		$pdf->SetFont($fontFamily, '', $fontSize);
	}
}
if ($i === 0)
	$pdf->SetFont($fontFamily, '', $fontSize);
$pdf->Ln();
unset($cols, $colRows, $colWidth, $textWidth, $sellerX, $customerX, $nRows, $i);

if (CSalePaySystemAction::GetParamValue('QUOTE_SIGN_SHOW') == 'Y')
{
	if (!$blank && CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false))
	{
		list($stampHeight, $stampWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false));

		if ($stampHeight && $stampWidth)
		{
			if ($stampHeight > 120 || $stampWidth > 120)
			{
				$ratio = 120 / max($stampHeight, $stampWidth);
				$stampHeight = $ratio * $stampHeight;
				$stampWidth  = $ratio * $stampWidth;
			}

			$imageY = $pdf->GetY();
			$pageNumBefore = $pdf->PageNo();

			$pdf->Image(
				CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false),
				$margin['left']+40, null,
				$stampWidth, $stampHeight
			);

			$pageNumAfter = $pdf->PageNo();
			if ($pageNumAfter === $pageNumBefore)
				$pdf->SetY($imageY);
			else
				$pdf->SetY($pdf->GetY() - $stampHeight);
			unset($imageY, $pageNumBefore, $pageNumAfter);
		}
	}

	$pdf->Ln();

	$pdf->SetFont($fontFamily, 'B', $fontSize);

	if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
	{
		$isDirSign = false;
		if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false))
		{
			list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false));

			if ($signHeight && $signWidth)
			{
				$ratio = min(37.5/$signHeight, 150/$signWidth);
				$signHeight = $ratio * $signHeight;
				$signWidth  = $ratio * $signWidth;

				$isDirSign = true;
			}
		}

		$sellerDirPos = HTMLToTxt(
			preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'),
				array('<br>', '<br>'),
				CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
			), '', array(), 0
		);
		if ($isDirSign && $pdf->GetStringWidth($sellerDirPos) <= 160)
			$pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
		$pdf->MultiCell(150, 15, $sellerDirPos, 0, 'L');
		$pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);

		if ($isDirSign)
		{
			$pdf->Image(
				CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false),
				$pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
				$signWidth, $signHeight
			);
		}

		$x1 = $pdf->GetX();
		$pdf->Cell(160, 15, '');
		$x2 = $pdf->GetX();

		if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false))
			$pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_DIR", false).')'));
		$pdf->Ln();

		$y2 = $pdf->GetY();
		$pdf->Line($x1, $y2, $x2, $y2);

		$pdf->Ln();
	}

	if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
	{
		$isAccSign = false;
		if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false))
		{
			list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false));

			if ($signHeight && $signWidth)
			{
				$ratio = min(37.5/$signHeight, 150/$signWidth);
				$signHeight = $ratio * $signHeight;
				$signWidth  = $ratio * $signWidth;

				$isAccSign = true;
			}
		}

		$sellerAccPos = HTMLToTxt(
			preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'),
				array('<br>', '<br>'),
				CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
			), '', array(), 0
		);
		if ($isAccSign && $pdf->GetStringWidth($sellerAccPos) <= 160)
			$pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
		$pdf->MultiCell(150, 15, $sellerAccPos, 0, 'L');
		$pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);

		if ($isAccSign)
		{
			$pdf->Image(
				CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false),
				$pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
				$signWidth, $signHeight
			);
		}

		$x1 = $pdf->GetX();
		$pdf->Cell((CSalePaySystemAction::GetParamValue("SELLER_DIR", false)) ? $x2-$x1 : 160, 15, '');
		$x2 = $pdf->GetX();

		if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false))
			$pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_ACC", false).')'));
		$pdf->Ln();

		$y2 = $pdf->GetY();
		$pdf->Line($x1, $y2, $x2, $y2);
	}
}

$dest = 'I';
if ($_REQUEST['GET_CONTENT'] == 'Y')
	$dest = 'S';
else if ($_REQUEST['DOWNLOAD'] == 'Y')
	$dest = 'D';

$fileName = sprintf(
	'Quote No %s ot %s.pdf',
	str_replace(
		array(
			chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8), chr(9), chr(10), chr(11),
			chr(12), chr(13), chr(14), chr(15), chr(16), chr(17), chr(18), chr(19), chr(20), chr(21), chr(22),
			chr(23), chr(24), chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31),
			'"', '*', '/', ':', '<', '>', '?', '\\', '|'
		),
		'_',
		strval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"])
	),
	ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')
);

$trFileName = CUtil::translit($fileName, 'ru', array('max_len' => 1024, 'safe_chars' => '.', 'replace_space' => '-'));

return $pdf->Output($trFileName, $dest, $fileName);
?>include/sale_payment/quote_ru/.description.php000066400000037550147714176230015655 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?

global $MESS;

$langFile = GetLangFileName(dirname(__FILE__)."/", "/quote.php");

if(file_exists($langFile))
	include($langFile);

$psTitle = GetMessage("SBLP_DTITLE");
$psDescription = GetMessage("SBLP_DDESCR");

$isAffordPdf = true;

$arPSCorrespondence = array(
		"DATE_INSERT" => array(
				"NAME" => GetMessage("SBLP_DATE"),
				"DESCR" => GetMessage("SBLP_DATE_DESC"),
				"VALUE" => "DATE_INSERT_DATE",
				"TYPE" => "ORDER",
				"GROUP" => "PAYMENT",
				"SORT" => 100
			),

		"ORDER_SUBJECT" => array(
				"NAME" => GetMessage("SBLP_ORDER_SUBJECT"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "PAYMENT",
				"SORT" => 200
			),
		"DATE_PAY_BEFORE" => array(
				"NAME" => GetMessage("SBLP_PAY_BEFORE"),
				"DESCR" => GetMessage("SBLP_PAY_BEFORE_DESC"),
				"VALUE" => "DATE_PAY_BEFORE",
				"TYPE" => "ORDER",
				"GROUP" => "PAYMENT",
				"SORT" => 300
			),
		"SELLER_NAME" => array(
				"NAME" => GetMessage("SBLP_SUPPLI"),
				"DESCR" => GetMessage("SBLP_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 400
			),
		"SELLER_ADDRESS" => array(
				"NAME" => GetMessage("SBLP_ADRESS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ADRESS_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 500
			),
		"SELLER_PHONE" => array(
				"NAME" => GetMessage("SBLP_PHONE_SUPPLI"),
				"DESCR" => GetMessage("SBLP_PHONE_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 600
			),
		"SELLER_EMAIL" => array(
				"NAME" => GetMessage("SBLP_EMAIL_SUPPLI"),
				"DESCR" => GetMessage("SBLP_EMAIL_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 600
			),
		"SELLER_INN" => array(
				"NAME" => GetMessage("SBLP_INN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_INN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 700
			),
		"SELLER_KPP" => array(
				"NAME" => GetMessage("SBLP_KPP_SUPPLI"),
				"DESCR" => GetMessage("SBLP_KPP_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 800
			),
		"SELLER_RS" => array(
				"NAME" => GetMessage("SBLP_ORDER_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ORDER_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_ORDER_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 900
			),
		"SELLER_BANK" => array(
				"NAME" => GetMessage("SBLP_BANK_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1000
			),
		"SELLER_BCITY" => array(
				"NAME" => GetMessage("SBLP_BCITY_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BCITY_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1100
			),
		"SELLER_KS" => array(
				"NAME" => GetMessage("SBLP_KORORDER_SUPPLI"),
				"DESCR" => GetMessage("SBLP_KORORDER_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1200
			),
		"SELLER_BIK" => array(
				"NAME" => GetMessage("SBLP_BIK_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BIK_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1300
			),
		"SELLER_DIR_POS" => array(
				"NAME" => GetMessage("SBLP_DIR_POS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_POS_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_DIR_POS_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1400
			),
		"SELLER_ACC_POS" => array(
				"NAME" => GetMessage("SBLP_ACC_POS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_POS_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_ACC_POS_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1500
			),
		"SELLER_DIR" => array(
				"NAME" => GetMessage("SBLP_DIR_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1600
			),
		"SELLER_ACC" => array(
				"NAME" => GetMessage("SBLP_ACC_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1700
			),
		"BUYER_NAME" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_DESC"),
				"VALUE" => "COMPANY_NAME",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 1800
			),
		"BUYER_INN" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_INN"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_INN_DESC"),
				"VALUE" => "INN",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 1900
			),
		"BUYER_ADDRESS" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_ADRES"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_ADRES_DESC"),
				"VALUE" => "ADDRESS",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2000
			),
		"BUYER_PHONE" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_PHONE"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_PHONE_DESC"),
				"VALUE" => "PHONE",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2100
			),
		"BUYER_FAX" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_FAX"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_FAX_DESC"),
				"VALUE" => "FAX",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2200
			),
		"BUYER_EMAIL" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_EMAIL"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_EMAIL_DESC"),
				"VALUE" => "EMAIL",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2250
			),
		"BUYER_PAYER_NAME" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_PERSON"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_PERSON_DESC"),
				"VALUE" => "PAYER_NAME",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2300
			),
		"COMMENT1" => array(
				"NAME" => GetMessage("SBLP_COMMENT1"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2400
			),
		"COMMENT2" => array(
				"NAME" => GetMessage("SBLP_COMMENT2"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2500
			),
		"USER_FIELD_1" => array(
				"NAME" => GetMessage("SBLP_USERFIELD1"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2600
			),
		"USER_FIELD_2" => array(
				"NAME" => GetMessage("SBLP_USERFIELD2"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2700
			),
		"USER_FIELD_3" => array(
				"NAME" => GetMessage("SBLP_USERFIELD3"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2800
			),
		"USER_FIELD_4" => array(
				"NAME" => GetMessage("SBLP_USERFIELD4"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2900
			),
		"USER_FIELD_5" => array(
				"NAME" => GetMessage("SBLP_USERFIELD5"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 3000
			),
		"PATH_TO_LOGO" => array(
				"NAME" => GetMessage("SBLP_LOGO"),
				"DESCR" => GetMessage("SBLP_LOGO_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3100
			),
		"LOGO_DPI" => array(
				"NAME" => GetMessage("SBLP_LOGO_DPI"),
				"DESCR" => "",
				"VALUE" => array(
					'96' => array('NAME' => GetMessage("SBLP_LOGO_DPI_96")),
					'600' => array('NAME' => GetMessage("SBLP_LOGO_DPI_600")),
					'300' => array('NAME' => GetMessage("SBLP_LOGO_DPI_300")),
					'150' => array('NAME' => GetMessage("SBLP_LOGO_DPI_150")),
					'72' => array('NAME' => GetMessage("SBLP_LOGO_DPI_72"))
				),
				"TYPE" => "SELECT",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3200
			),
		"PATH_TO_STAMP" => array(
				"NAME" => GetMessage("SBLP_PRINT"),
				"DESCR" => GetMessage("SBLP_PRINT_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3300
			),
		"SELLER_DIR_SIGN" => array(
				"NAME" => GetMessage("SBLP_DIR_SIGN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_SIGN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3400
			),
		"SELLER_ACC_SIGN" => array(
				"NAME" => GetMessage("SBLP_ACC_SIGN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_SIGN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3500
			),
		"BACKGROUND" => array(
				"NAME" => GetMessage("SBLP_BACKGROUND"),
				"DESCR" => GetMessage("SBLP_BACKGROUND_DESC"),
				"VALUE" => "",
				"GROUP" => 'VISUAL_SETTINGS',
				"TYPE" => "FILE",
				"SORT" => 3600
			),
		"BACKGROUND_STYLE" => array(
				"NAME" => GetMessage("SBLP_BACKGROUND_STYLE"),
				"DESCR" => "",
				"GROUP" => 'VISUAL_SETTINGS',
				"VALUE" => array(
					'none' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_NONE")),
					'tile' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_TILE")),
					'stretch' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_STRETCH"))
				),
				"TYPE" => "SELECT",
				"SORT" => 3700
			),
		"MARGIN_TOP" => array(
				"NAME" => GetMessage("SBLP_MARGIN_TOP"),
				"DESCR" => "",
				"VALUE" => "15",
				"GROUP" => 'VISUAL_SETTINGS',
				"TYPE" => "",
				"SORT" => 3800
			),
		"MARGIN_RIGHT" => array(
				"NAME" => GetMessage("SBLP_MARGIN_RIGHT"),
				"DESCR" => "",
				"VALUE" => "15",
				"GROUP" => 'VISUAL_SETTINGS',
				"TYPE" => "",
				"SORT" => 3900
			),
		"MARGIN_BOTTOM" => array(
				"NAME" => GetMessage("SBLP_MARGIN_BOTTOM"),
				"DESCR" => "",
				"VALUE" => "15",
				"GROUP" => 'VISUAL_SETTINGS',
				"TYPE" => "",
				"SORT" => 4000
			),
		"MARGIN_LEFT" => array(
				"NAME" => GetMessage("SBLP_MARGIN_LEFT"),
				"DESCR" => "",
				"VALUE" => "20",
				"TYPE" => "",
				"GROUP" => 'GENERAL_SETTINGS',
				"SORT" => 4100
			),
		"QUOTE_HEADER_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_HEADER_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => 'GENERAL_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4200
			),
		"QUOTE_TOTAL_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_TOTAL_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => 'GENERAL_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4300
			),
		"QUOTE_SIGN_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_SIGN_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => 'SELLER_COMPANY',
				"TYPE" => "CHECKBOX",
				"SORT" => 4400
			),
		"QUOTE_COLUMN_NUMBER_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_NUMBER_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_NUMBER_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4500
			),
		"QUOTE_COLUMN_NUMBER_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 100,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4600
			),
		"QUOTE_COLUMN_NUMBER_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4700
			),
		"QUOTE_COLUMN_NAME_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_NAME_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_NAME_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4800
			),
		"QUOTE_COLUMN_NAME_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 200,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4900
			),
		"QUOTE_COLUMN_NAME_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5000
			),
		"QUOTE_COLUMN_QUANTITY_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_QUANTITY_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_QUANTITY_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5100
			),
		"QUOTE_COLUMN_QUANTITY_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 300,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5200
			),
		"QUOTE_COLUMN_QUANTITY_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5300
			),
		"QUOTE_COLUMN_MEASURE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_MEASURE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_MEASURE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5400
			),
		"QUOTE_COLUMN_MEASURE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 400,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5500
			),
		"QUOTE_COLUMN_MEASURE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5600
			),
		"QUOTE_COLUMN_PRICE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_PRICE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_PRICE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5700
			),
		"QUOTE_COLUMN_PRICE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 500,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5800
			),
		"QUOTE_COLUMN_PRICE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5900
			),
		"QUOTE_COLUMN_VAT_RATE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_VAT_RATE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_VAT_RATE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6000
			),
		"QUOTE_COLUMN_VAT_RATE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 600,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6100
			),
		"QUOTE_COLUMN_VAT_RATE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6200
			),
		"QUOTE_COLUMN_DISCOUNT_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_DISCOUNT_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_DISCOUNT_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6300
			),
		"QUOTE_COLUMN_DISCOUNT_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 700,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6400
			),
		"QUOTE_COLUMN_DISCOUNT_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6500
			),
		"QUOTE_COLUMN_SUM_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SUM_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_RU_COLUMN_SUM_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6700
			),
		"QUOTE_COLUMN_SUM_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 800,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6800
			),
		"QUOTE_COLUMN_SUM_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_RU_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6900
			)
	);
?>include/sale_payment/quote_en/html.php000066400000045632147714176230014174 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Quote</title>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET?>">
<style>
	table { border-collapse: collapse; }
	table.acc td { border: 1pt solid #000000; padding: 0pt 3pt; line-height: 21pt; }
	table.it td { border: 1pt solid #000000; padding: 0pt 3pt; }
	table.sign td { font-weight: bold; vertical-align: bottom; }
	table.header td { padding: 0pt; vertical-align: top; }
</style>
</head>

<?

if ($_REQUEST['BLANK'] == 'Y')
	$blank = true;

$pageWidth  = 595.28;
$pageHeight = 841.89;

$background = '#ffffff';
if (CSalePaySystemAction::GetParamValue('BACKGROUND', false))
{
	$path = CSalePaySystemAction::GetParamValue('BACKGROUND', false);
	if (intval($path) > 0)
	{
		if ($arFile = CFile::GetFileArray($path))
			$path = $arFile['SRC'];
	}

	$backgroundStyle = CSalePaySystemAction::GetParamValue('BACKGROUND_STYLE', false);
	if (!in_array($backgroundStyle, array('none', 'tile', 'stretch')))
		$backgroundStyle = 'none';

	if ($path)
	{
		switch ($backgroundStyle)
		{
			case 'none':
				$background = "url('" . $path . "') 0 0 no-repeat";
				break;
			case 'tile':
				$background = "url('" . $path . "') 0 0 repeat";
				break;
			case 'stretch':
				$background = sprintf(
					"url('%s') 0 0 repeat-y; background-size: %.02fpt %.02fpt",
					$path, $pageWidth, $pageHeight
				);
				break;
		}
	}
}

$margin = array(
	'top' => intval(CSalePaySystemAction::GetParamValue('MARGIN_TOP', false) ?: 15) * 72/25.4,
	'right' => intval(CSalePaySystemAction::GetParamValue('MARGIN_RIGHT', false) ?: 15) * 72/25.4,
	'bottom' => intval(CSalePaySystemAction::GetParamValue('MARGIN_BOTTOM', false) ?: 15) * 72/25.4,
	'left' => intval(CSalePaySystemAction::GetParamValue('MARGIN_LEFT', false) ?: 20) * 72/25.4
);
$width = $pageWidth - $margin['left'] - $margin['right'];
?>
<body style="margin: 0pt; padding: 0pt; background: <?=$background; ?>"<? if ($_REQUEST['PRINT'] == 'Y') { ?> onload="setTimeout(window.print, 0);"<? } ?>>
<div style="margin: 0pt; padding: <?=join('pt ', $margin); ?>pt; width: <?=$width; ?>pt; background: <?=$background; ?>">
<?if (CSalePaySystemAction::GetParamValue('QUOTE_EN_HEADER_SHOW') == 'Y'):?>
<table class="header">
	<tr><?
		$pathToLogo = CSalePaySystemAction::GetParamValue("PATH_TO_LOGO", false);
		if ($pathToLogo)
		{
			$imgParams = CFile::_GetImgParams($pathToLogo);
			$imgWidth = $imgParams['WIDTH'] * 96 / (intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96);
			?><td style="padding-right: 5pt; "><img src="<?=$imgParams['SRC']; ?>" width="<?=$imgWidth; ?>" /></td><?
		}
		?>
		<td><?
			$sellerName = CSalePaySystemAction::GetParamValue("SELLER_NAME", false);
			if (!$sellerName)
				$sellerName = '';
			?>
			<b><?= $sellerName ?></b><br><?
			$sellerAddress = CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false);
			if ($sellerAddress)
			{
				if (is_array($sellerAddress))
				{
					$addrValue = implode('<br>', $sellerAddress)
					?><div style="display: inline-block; vertical-align: top;"><?= $addrValue ?></div><?
					unset($addrValue);
				}
				else
				{
					?><?= nl2br($sellerAddress) ?><?
				}
				unset($sellerAddress);
				?><br><?
			}
			?>
			<? if (CSalePaySystemAction::GetParamValue("SELLER_PHONE", false)) { ?>
				<?=sprintf("Phone: %s", CSalePaySystemAction::GetParamValue("SELLER_PHONE", false)); ?><br>
			<? } ?>
			<? if (CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false)) { ?>
				<?=sprintf("E-mail: %s", CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false)); ?>
			<? } ?>
		</td>
	</tr>
</table>
<br>
<br>
<div style="margin: 0pt; padding: 0pt;">
	<? if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false)) { ?>
		<b><?=CSalePaySystemAction::GetParamValue("BUYER_NAME", false); ?></b>
		<br><?
		if (CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false))
		{
			$buyerAddress = CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false);
			if (is_array($buyerAddress))
			{
				$addrValue = implode('<br>', $buyerAddress)
				?><div style="display: inline-block; vertical-align: top;"><?= $addrValue ?></div><?
				unset($addrValue);
			}
			else
			{
				?><?= nl2br($buyerAddress) ?><?
			}
			unset($buyerAddress);
			?><br><?
		} ?>
		<?
		$buyerPayerName = CSalePaySystemAction::GetParamValue("BUYER_PAYER_NAME", false);
		if ($buyerPayerName)
		{
			?><?=sprintf("Contact person: %s", $buyerPayerName); ?><br><?
		}
		unset($buyerPayerName);
		$buyerPhone = CSalePaySystemAction::GetParamValue("BUYER_PHONE", false);
		if ($buyerPhone)
		{
			?><?=sprintf("Phone: %s", $buyerPhone); ?><br><?
		}
		unset($buyerPhone);
		$buyerFax = CSalePaySystemAction::GetParamValue("BUYER_FAX", false);
		if ($buyerFax)
		{
			?><?=sprintf("Fax: %s", $buyerFax); ?><br><?
		}
		unset($buyerFax);
		$buyerEmail = CSalePaySystemAction::GetParamValue("BUYER_EMAIL", false);
		if ($buyerEmail)
		{
			?><?=sprintf("E-mail: %s", $buyerEmail); ?><br><?
		}
		unset($buyerEmail);
		?>
	<? } ?>
</div>
<br>
<br>
<table width="100%" style="font-weight: bold">
	<tr>
		<td>
			<span style="font-size: 1.5em; font-weight: bold; text-align: center;">
				<?=sprintf('Quote # %s',
					htmlspecialcharsbx($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"])); ?>
			</span>
		</td>
		<td align="right">
			<?=sprintf('Issue Date: %s',
					CSalePaySystemAction::GetParamValue("DATE_INSERT", false)); ?>
			</td>
	</tr>
</table>
<br>

<?if (CSalePaySystemAction::GetParamValue("COMMENT1", false)
	|| CSalePaySystemAction::GetParamValue("COMMENT2", false)) { ?>
	<? if (CSalePaySystemAction::GetParamValue("COMMENT1", false)) { ?>
	<?=nl2br(HTMLToTxt(preg_replace(
		array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
		htmlspecialcharsback(CSalePaySystemAction::GetParamValue("COMMENT1", false))
	), '', array(), 0)); ?>
	<br>
	<br>
	<? } ?>
	<? if (CSalePaySystemAction::GetParamValue("COMMENT2", false)) { ?>
	<?=nl2br(HTMLToTxt(preg_replace(
		array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
		htmlspecialcharsback(CSalePaySystemAction::GetParamValue("COMMENT2", false))
	), '', array(), 0)); ?>
	<br>
	<br>
	<? } ?>
<? } ?>
<?endif;
$vat = 0;
$arCols = array();
$bShowDiscount = false;
$arBasketItems = CSalePaySystemAction::GetParamValue("BASKET_ITEMS", false);
if(!is_array($arBasketItems))
	$arBasketItems = array();

if (!empty($arBasketItems))
{
	$arBasketItems = getMeasures($arBasketItems);

	$arCells = array();
	$arProps = array();

	$columnList = array('NUMBER', 'NAME', 'QUANTITY', 'MEASURE', 'PRICE', 'VAT_RATE', 'DISCOUNT', 'SUM');
	$vatRateColumn = 0;
	foreach ($columnList as $column)
	{
		if (CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_SHOW') == 'Y')
		{
			$arCols[$column] = array(
				'NAME' => CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_TITLE'),
				'SORT' => CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_SORT')
			);
		}
	}

	if (CSalePaySystemAction::GetParamValue('USER_COLUMNS'))
	{
		$userColumns = CSalePaySystemAction::GetParamValue('USER_COLUMNS');
		$columnList = array_merge($columnList, array_keys($userColumns));
		foreach ($userColumns as $id => $val)
		{
			$arCols[$id] = array(
				'NAME' => $val['NAME'],
				'SORT' => $val['SORT']
			);
		}
	}

	uasort($arCols, function ($a, $b) {return ($a['SORT'] < $b['SORT']) ? -1 : 1;});

	$arColumnKeys = array_keys($arCols);
	$columnCount = count($arColumnKeys);

	$n = 0;
	$sum = 0.00;
	$vats = array();

	if(is_array($arBasketItems))
	{
		foreach($arBasketItems as &$arBasket)
		{
			$n++;

			// @TODO: replace with real vatless price
			if (isset($arBasket['VAT_INCLUDED']) && $arBasket['VAT_INCLUDED'] === 'Y')
				$arBasket["VATLESS_PRICE"] = roundEx($arBasket["PRICE"] / (1 + $arBasket["VAT_RATE"]), SALE_VALUE_PRECISION);
			else
				$arBasket["VATLESS_PRICE"] = $arBasket["PRICE"];

			$productName = $arBasket["NAME"];
			if ($productName == "OrderDelivery")
				$productName = "Shipping";
			else if ($productName == "OrderDiscount")
				$productName = "Discount";

			// discount
			$discountValue = '0%';
			$discountSum = 0.0;
			$discountIsSet = false;
			if (is_array($arBasket['CRM_PR_FIELDS']))
			{
				if (isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'])
					&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE'])
					&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']))
				{
					if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::PERCENTAGE)
					{
						$discountValue = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE']), 2).'%';
						$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
						$discountIsSet = true;
					}
					else if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::MONETARY)
					{
						$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
						$discountValue = SaleFormatCurrency($discountSum, $arBasket["CURRENCY"], false);
						$discountIsSet = true;
					}
				}
			}
			if ($discountIsSet && $discountSum > 0)
				$bShowDiscount = true;
			unset($discountIsSet);

			if ($bShowDiscount
				&& isset($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'])
				&& isset($arBasket['CRM_PR_FIELDS']['PRICE_NETTO'])
				&& isset($arBasket['CRM_PR_FIELDS']['PRICE_BRUTTO']))
			{
				if ($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'] === 'Y')
					$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_BRUTTO"];
				else
					$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_NETTO"];
			}
			else
			{
				$unitPrice = $arBasket["VATLESS_PRICE"];
			}
			foreach ($arCols as $columnId => $caption)
			{
				$data = null;

				switch ($columnId)
				{
					case 'NUMBER':
						$data = $n;
						break;
					case 'NAME':
						$data = htmlspecialcharsbx($productName);
						break;
					case 'QUANTITY':
						$data = roundEx($arBasket['QUANTITY'], SALE_VALUE_PRECISION);
						break;
					case 'MEASURE':
						$data = $arBasket["MEASURE_NAME"] ? htmlspecialcharsbx($arBasket["MEASURE_NAME"]) : 'pcs';
						break;
					case 'PRICE':
						$data = SaleFormatCurrency($unitPrice, $arBasket['CURRENCY'], false);
						break;
					case 'DISCOUNT':
						$data = $discountValue;
						break;
					case 'VAT_RATE':
						$data = roundEx($arBasket['VAT_RATE'] * 100, SALE_VALUE_PRECISION)."%";
						break;
					case 'SUM':
						$data = SaleFormatCurrency($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"], $arBasket["CURRENCY"], false);
						break;
					default :
						$data = ($arBasket[$columnId]) ?: '';
				}
				if ($data !== null)
					$arCells[$n][$columnId] = $data;
			}

			if(isset($arBasket["PROPS"]) && is_array($arBasket["PROPS"]))
			{
				$arProps[$n] = array();
				foreach ($arBasket["PROPS"] as $vv)
					$arProps[$n][] = htmlspecialcharsbx(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
			}

			$sum += doubleval($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"]);
			$vat = max($vat, $arBasket["VAT_RATE"]);
			$vatKey = strval($arBasket["VAT_RATE"]);
			if ($arBasket["VAT_RATE"] > 0)
			{
				if (!isset($vats[$vatKey]))
					$vats[$vatKey] = 0;
				if ($arBasket['VAT_INCLUDED'] === 'Y')
					$vats[$vatKey] += ($arBasket["PRICE"] - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
				else
					$vats[$vatKey] += ($arBasket["PRICE"] * (1 + $arBasket["VAT_RATE"]) - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
			}
		}
		unset($arBasket);

		if ($vat <= 0)
		{
			unset($arCols['VAT_RATE']);
			$columnCount = count($arCols);
			$arColumnKeys = array_keys($arCols);
			foreach ($arCells as $i => $cell)
				unset($arCells[$i]['VAT_RATE']);
		}

		if (!$bShowDiscount)
		{
			unset($arCols['DISCOUNT']);
			$columnCount = count($arCols);
			$arColumnKeys = array_keys($arCols);
			foreach ($arCells as $i => $cell)
				unset($arCells[$i]['DISCOUNT']);
		}
	}

	$items = $n;

	if (CSalePaySystemAction::GetParamValue('QUOTE_EN_TOTAL_SHOW') == 'Y')
	{
		$eps = 0.0001;
		if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum > $eps)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = "Subtotal:";
			$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false);
		}

		if (!empty($vats))
		{
			// @TODO: remove on real vatless price implemented
			$delta = intval(roundEx(
				$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum - array_sum($vats),
				SALE_VALUE_PRECISION
			) * pow(10, SALE_VALUE_PRECISION));
			if ($delta)
			{
				$vatRates = array_keys($vats);
				rsort($vatRates);

				$ful = intval($delta / count($vatRates));
				$ost = $delta % count($vatRates);

				foreach ($vatRates as $vatRate)
				{
					$vats[$vatRate] += ($ful + $ost) / pow(10, SALE_VALUE_PRECISION);

					if ($ost > 0)
						$ost--;
				}
			}

			foreach ($vats as $vatRate => $vatSum)
			{
				$arCells[++$n] = array();
				for ($i = 0; $i < $columnCount; $i++)
					$arCells[$n][$arColumnKeys[$i]] = null;

				$arCells[$n][$arColumnKeys[$columnCount-2]] = sprintf("Tax (%s%%):", roundEx($vatRate * 100, SALE_VALUE_PRECISION));
				$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($vatSum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false);
			}
		}
		else
		{
			$arTaxList = CSalePaySystemAction::GetParamValue("TAX_LIST", false);
			if(!is_array($arTaxList))
				$arTaxList = array();
			if(!empty($arTaxList))
			{
				foreach($arTaxList as &$arTaxInfo)
				{
					$arCells[++$n] = array();
					for ($i = 0; $i < $columnCount; $i++)
						$arCells[$n][$arColumnKeys[$i]] = null;

					$arCells[$n][$arColumnKeys[$columnCount-2]] = htmlspecialcharsbx(sprintf(
						"%s%s%s:",
						($arTaxInfo["IS_IN_PRICE"] == "Y") ? "Included " : "",
						$arTaxInfo["TAX_NAME"],
						sprintf(' (%s%%)', roundEx($arTaxInfo["VALUE"],SALE_VALUE_PRECISION))
					));
					$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($arTaxInfo["VALUE_MONEY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false);
				}
				unset($arTaxInfo);
			}
		}
		if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = "Discount:";
			$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false);
		}

		$arCells[++$n] = array();
		for ($i = 0; $i < $columnCount; $i++)
			$arCells[$n][$arColumnKeys[$i]] = null;

		$arCells[$n][$arColumnKeys[$columnCount-2]] = "Total:";
		$arCells[$n][$arColumnKeys[$columnCount-1]] = SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false);
	}
}

?>
<table class="it" width="100%">
	<tr>
		<?foreach ($arCols as $columnId => $col):?>
			<td><?=$col['NAME'];?></td>
		<?endforeach;?>
	</tr>
<?

$rowsCnt = count($arCells);
for ($n = 1; $n <= $rowsCnt; $n++)
{
	$accumulated = 0;

?>
	<tr valign="top">
		<?foreach ($arCols as $columnId => $col):?>
		<?
			if (!is_null($arCells[$n][$columnId]))
			{
				if ($columnId === 'NUMBER')
				{?>
					<td align="center"><?=$arCells[$n][$columnId];?></td>
				<?}
				elseif ($columnId === 'NAME')
				{
				?>
					<td align="<?=($n > $items) ? 'right' : 'left';?>"
						style="word-break: break-word; word-wrap: break-word; <? if ($accumulated) {?>border-width: 0pt 1pt 0pt 0pt; <? } ?>"
						<? if ($accumulated) { ?>colspan="<?=($accumulated+1); ?>"<? $accumulated = 0; } ?>>
						<?=$arCells[$n][$columnId]; ?>
						<? if (isset($arProps[$n]) && is_array($arProps[$n])) { ?>
						<? foreach ($arProps[$n] as $property) { ?>
						<br>
						<small><?=$property; ?></small>
						<? } ?>
						<? } ?>
					</td>
				<?}
				else
				{
					if (!is_null($arCells[$n][$columnId]))
					{
						if ($columnId != 'VAT_RATE' ||$columnId != 'DISCOUNT' || $vat > 0 || is_null($arCells[$n][$columnId]) || $n > $items)
						{ ?>
							<td align="right"
								<? if ($accumulated) { ?>
								style="border-width: 0pt 1pt 0pt 0pt"
								colspan="<?=(($columnId == 'VAT_RATE' && $vat <= 0) ? $accumulated : $accumulated+1); ?>"
								<? $accumulated = 0; } ?>>
								<?if ($columnId == 'SUM' || $columnId == 'PRICE'):?>
									<nobr><?=$arCells[$n][$columnId];?></nobr>
								<?else:?>
									<?=$arCells[$n][$columnId]; ?>
								<?endif;?>
							</td>
						<? }
					}
					else
					{
						$accumulated++;
					}
				}
			}
			else
			{
				$accumulated++;
			}
		?>
	<?endforeach;?>
	</tr>
<?

}

?>
</table>
<br>
<? if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) { ?>
<div><?=sprintf('Due Date: %s', ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false), FORMAT_DATE))?></div>
<br>
<? } ?>

<?$userFields = array();
for($i = 1; $i <= 5; $i++)
{
	$fildValue = CSalePaySystemAction::GetParamValue("USER_FIELD_{$i}", false);
	if($fildValue)
	{
		$userFields[] = $fildValue;
	}
}?>
<?if (!empty($userFields)) { ?>
	<?foreach($userFields as &$userField){?>
		<?=nl2br(HTMLToTxt(preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'), array('<br>', '<br>'),
				htmlspecialcharsback($userField)
			), '', array(), 0));?>
		<br>
		<br>
	<?}
	unset($userField);?>
<?}?>

<?if (CSalePaySystemAction::GetParamValue('QUOTE_EN_SIGN_SHOW') == 'Y'):?>
	<? if (!$blank) { ?>
	<div style="position: relative; "><?=CFile::ShowImage(
		CSalePaySystemAction::GetParamValue("PATH_TO_STAMP", false),
		160, 160,
		'style="position: absolute; left: 40pt; "'
	); ?></div>
	<? } ?>

	<div style="position: relative">
		<table class="sign">
			<? if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false)) { ?>
			<tr>
				<td style="width: 150pt; "><?=CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false); ?></td>
				<td style="width: 160pt; border: 1pt solid #000000; border-width: 0pt 0pt 1pt 0pt; text-align: center; ">
					<? if (!$blank) { ?>
					<?=CFile::ShowImage(CSalePaySystemAction::GetParamValue("SELLER_DIR_SIGN", false), 200, 50); ?>
					<? } ?>
				</td>
				<td>
					<? if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false)) { ?>
					(<?=CSalePaySystemAction::GetParamValue("SELLER_DIR", false); ?>)
					<? } ?>
				</td>
			</tr>
			<tr><td colspan="3">&nbsp;</td></tr>
			<? } ?>
			<? if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false)) { ?>
			<tr>
				<td style="width: 150pt; "><?=CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false); ?></td>
				<td style="width: 160pt; border: 1pt solid #000000; border-width: 0pt 0pt 1pt 0pt; text-align: center; ">
					<? if (!$blank) { ?>
					<?=CFile::ShowImage(CSalePaySystemAction::GetParamValue("SELLER_ACC_SIGN", false), 200, 50); ?>
					<? } ?>
				</td>
				<td>
					<? if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false)) { ?>
					(<?=CSalePaySystemAction::GetParamValue("SELLER_ACC", false); ?>)
					<? } ?>
				</td>
			</tr>
			<? } ?>
		</table>
	</div>

	<br>
	<br>
	<br>
<?endif;?>

</div>

</body>
</html>include/sale_payment/quote_en/en/quote.php000066400000014535147714176230014765 0ustar00<?
$MESS["SBLP_DTITLE"] = "Quote (English)";
$MESS["SBLP_DDESCR"] = "Quote print form. The form will open in a new window.";

$MESS["SBLP_DATE"] = "Quote date";
$MESS["SBLP_DATE_DESC"] = "The date the quote was created";
$MESS["SBLP_ORDER_SUBJECT"] = "Subject";
$MESS["SBLP_PAY_BEFORE"] = "Pay before";
$MESS["SBLP_PAY_BEFORE_DESC"] = "Quote valid until";
$MESS["SBLP_SUPPLI"] = "Supplier";
$MESS["SBLP_SUPPLI_DESC"] = "Supplier name";
$MESS["SBLP_ADRESS_SUPPLI"] = "Address";
$MESS["SBLP_ADRESS_SUPPLI_DESC"] = "Supplier mailing address";
$MESS["SBLP_PHONE_SUPPLI"] = "Supplier phone";
$MESS["SBLP_PHONE_SUPPLI_DESC"] = "Phone number";
$MESS["SBLP_EMAIL_SUPPLI"] = "E-mail address";
$MESS["SBLP_EMAIL_SUPPLI_DESC"] = "Supplier e-mail address";

$MESS["SBLP_BANK_ACCNO_SUPPLI"] = "Bank account number";
$MESS["SBLP_BANK_ACCNO_SUPPLI_DESC"] = "Supplier bank account number";

$MESS["SBLP_BANK_ACCNO_SUPPLI_VAL"] = "Supplier bank account number";
$MESS["SBLP_BANK_SUPPLI"] = "Bank name";
$MESS["SBLP_BANK_SUPPLI_DESC"] = "Supplier bank name";
$MESS["SBLP_BANK_SUPPLI_VAL"] = "Bank name";
$MESS["SBLP_BANK_BLZ_SUPPLI"] = "SWIFT or BIC";
$MESS["SBLP_BANK_BLZ_SUPPLI_DESC"] = "Supplier bank SWIFT or BIC";
$MESS["SBLP_BANK_BLZ_SUPPLI_VAL"] = "SWIFT or BIC";
$MESS["SBLP_BANK_IBAN_SUPPLI"] = "IBAN";
$MESS["SBLP_BANK_IBAN_SUPPLI_DESC"] = "Supplier IBAN";
$MESS["SBLP_BANK_IBAN_SUPPLI_VAL"] = "Supplier IBAN";

$MESS["SBLP_BANK_ADDR_SUPPLI"] = "Bank address";
$MESS["SBLP_BANK_ADDR_SUPPLI_DESC"] = "Supplier bank address";
$MESS["SBLP_BANK_ADDR_SUPPLI_VAL"] = "Supplier bank address";

$MESS["SBLP_EU_INN_SUPPLI"] = "VAT ID";
$MESS["SBLP_EU_INN_SUPPLI_DESC"] = "Supplier VAT ID";
$MESS["SBLP_INN_SUPPLI"] = "National ID";
$MESS["SBLP_INN_SUPPLI_DESC"] = "Supplier national ID";
$MESS["SBLP_REG_SUPPLI"] = "Registered in";
$MESS["SBLP_REG_SUPPLI_DESC"] = "Registration details";

$MESS["SBLP_BANK_PHONE_SUPPLI"] = "Bank phone number";
$MESS["SBLP_BANK_PHONE_SUPPLI_DESC"] = "Supplier bank phone number";
$MESS["SBLP_BANK_PHONE_SUPPLI_VAL"] = "Supplier bank phone number";
$MESS["SBLP_BANK_ROUTENO_SUPPLI"] = "Routing number";
$MESS["SBLP_BANK_ROUTENO_SUPPLI_DESC"] = "Supplier bank account routing number";
$MESS["SBLP_BANK_ROUTENO_SUPPLI_VAL"] = "Supplier bank account routing number";
$MESS["SBLP_BANK_SWIFT_SUPPLI"] = "SWIFT code";
$MESS["SBLP_BANK_SWIFT_SUPPLI_DESC"] = "SWIFT code of Seller's bank";
$MESS["SBLP_BANK_SWIFT_SUPPLI_VAL"] = "SWIFT code of Seller's bank";
$MESS["SBLP_CUSTOMER_ID"] = "Customer ID";

$MESS["SBLP_DIR_POS_SUPPLI"] = "CEO";
$MESS["SBLP_DIR_POS_SUPPLI_DESC"] = "Supervisor job title (sales)";
$MESS["SBLP_DIR_POS_SUPPLI_VAL"] = "The Director";
$MESS["SBLP_ACC_POS_SUPPLI"] = "Accountant";
$MESS["SBLP_ACC_POS_SUPPLI_DESC"] = "Accountant job title (sales)";
$MESS["SBLP_ACC_POS_SUPPLI_VAL"] = "The Accountant";

$MESS["SBLP_DIR_SUPPLI"] = "CEO name";
$MESS["SBLP_DIR_SUPPLI_DESC"] = "CEO name";
$MESS["SBLP_ACC_SUPPLI"] = "Accountant name";
$MESS["SBLP_ACC_SUPPLI_DESC"] = "Accountant name";

$MESS["SBLP_CUSTOMER"] = "Buyer";
$MESS["SBLP_CUSTOMER_DESC"] = "Buyer name";
$MESS["SBLP_CUSTOMER_ADRES"] = "Address";
$MESS["SBLP_CUSTOMER_ADRES_DESC"] = "Buyer address";
$MESS["SBLP_CUSTOMER_PHONE"] = "Phone number";
$MESS["SBLP_CUSTOMER_PHONE_DESC"] = "Buyer phone number";
$MESS["SBLP_CUSTOMER_FAX"] = "Fax number";
$MESS["SBLP_CUSTOMER_FAX_DESC"] = "Buyer fax number";
$MESS["SBLP_CUSTOMER_EMAIL"] = "E-mail";
$MESS["SBLP_CUSTOMER_EMAIL_DESC"] = "Buyer e-mail address";
$MESS["SBLP_CUSTOMER_PERSON"] = "Contact person";
$MESS["SBLP_CUSTOMER_PERSON_DESC"] = "Person responsible for purchases";

$MESS["SBLP_PRINT"] = "Stamp (recommended size: 150x150&nbsp;px)";
$MESS["SBLP_PRINT_DESC"] = "Supplier stamp image";
$MESS["SBLP_LOGO"] = "Supplier logo (recommended size: 80x80&nbsp;px)";
$MESS["SBLP_LOGO_DESC"] = "Supplier logo";

$MESS["SBLP_DIR_SIGN_SUPPLI"] = "CEO signature (recommended size: 200x50&nbsp;px)";
$MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Electronic signature of CEO";
$MESS["SBLP_ACC_SIGN_SUPPLI"] = "Accountant signature(recommended size: 200x50&nbsp;px)";
$MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Electronic signature of accountant";

$MESS["SBLP_BACKGROUND"] = "Background (recommended size: 800x1120&nbsp;px)";
$MESS["SBLP_BACKGROUND_DESC"] = "Invoice background";

$MESS["SBLP_BACKGROUND_STYLE"] = "Background image style";
$MESS["SBLP_BACKGROUND_STYLE_NONE"] = "None";
$MESS["SBLP_BACKGROUND_STYLE_TILE"] = "Tile";
$MESS["SBLP_BACKGROUND_STYLE_STRETCH"] = "Full screen";

$MESS["SBLP_MARGIN_TOP"] = "Top margin (mm)";
$MESS["SBLP_MARGIN_RIGHT"] = "Right margin (mm)";
$MESS["SBLP_MARGIN_BOTTOM"] = "Bottom margin (mm)";
$MESS["SBLP_MARGIN_LEFT"] = "Left margin (mm)";

$MESS["SBLP_COMMENT1"] = "Comment 1";
$MESS["SBLP_COMMENT2"] = "Comment 2";
$MESS["SBLP_USERFIELD1"] = "Custom field 1";
$MESS["SBLP_USERFIELD2"] = "Custom field 2";
$MESS["SBLP_USERFIELD3"] = "Custom field 3";
$MESS["SBLP_USERFIELD4"] = "Custom field 4";
$MESS["SBLP_USERFIELD5"] = "Custom field 5";

$MESS["SBLP_LOGO_DPI"] = "Logo scale";
$MESS["SBLP_LOGO_DPI_72"] = "133% (72 dpi)";
$MESS["SBLP_LOGO_DPI_96"] = "100% (96 dpi)";
$MESS["SBLP_LOGO_DPI_150"] = "64% (150 dpi)";
$MESS["SBLP_LOGO_DPI_300"] = "32% (300 dpi)";
$MESS["SBLP_LOGO_DPI_600"] = "16% (600 dpi)";

$MESS["SBLP_Q_EN_COLUMN_NUMBER_TITLE"] = "\"#\" column title";
$MESS["SBLP_Q_EN_COLUMN_NUMBER_VALUE"] = "#";

$MESS["SBLP_Q_EN_COLUMN_NAME_TITLE"] = "\"Item / Description\" column title";
$MESS["SBLP_Q_EN_COLUMN_NAME_VALUE"] = "Item / Description";

$MESS["SBLP_Q_EN_COLUMN_QUANTITY_TITLE"] = "\"Qty\" column title";
$MESS["SBLP_Q_EN_COLUMN_QUANTITY_VALUE"] = "Qty";

$MESS["SBLP_Q_EN_COLUMN_MEASURE_TITLE"] = "\"Units\" column title";
$MESS["SBLP_Q_EN_COLUMN_MEASURE_VALUE"] = "Units";

$MESS["SBLP_Q_EN_COLUMN_PRICE_TITLE"] = "\"Unit Price\" column title";
$MESS["SBLP_Q_EN_COLUMN_PRICE_VALUE"] = "Unit Price";

$MESS["SBLP_Q_EN_COLUMN_SUM_TITLE"] = "\"Total\" column title";
$MESS["SBLP_Q_EN_COLUMN_SUM_VALUE"] = "Total";

$MESS["SBLP_Q_EN_COLUMN_VAT_RATE_TITLE"] = "\"Tax Rate\" column title";
$MESS["SBLP_Q_EN_COLUMN_VAT_RATE_VALUE"] = "Tax Rate";

$MESS["SBLP_Q_EN_COLUMN_DISCOUNT_TITLE"] = "\"Discount\" column title";
$MESS["SBLP_Q_EN_COLUMN_DISCOUNT_VALUE"] = "Discount";

$MESS["SBLP_Q_EN_COLUMN_SHOW"] = "Active";
$MESS["SBLP_Q_EN_COLUMN_SORT"] = "Sort";
$MESS["SBLP_Q_EN_HEADER_SHOW"] = "Show quote header";
$MESS["SBLP_Q_EN_TOTAL_SHOW"] = "Show summary";
$MESS["SBLP_Q_EN_SIGN_SHOW"] = "Show signatures";
include/sale_payment/quote_en/payment.php000066400000000330147714176230014667 0ustar00<?

CCurrencyLang::disableUseHideZero();

if (!empty($_REQUEST['pdf']))
	return include(dirname(__FILE__) . '/pdf.php');
else
	return include(dirname(__FILE__) . '/html.php');

CCurrencyLang::enableUseHideZero();

?>include/sale_payment/quote_en/ru/quote.php000066400000022555147714176230015012 0ustar00<?
$MESS["SBLP_DTITLE"] = "Коммерческое предложение (Английский)";
$MESS["SBLP_DDESCR"] = "Коммерческое предложение для распечатки. Должно открываться в новом окне.";

$MESS["SBLP_DATE"] = "Дата оформления";
$MESS["SBLP_DATE_DESC"] = "Дата оформления предложения";
$MESS["SBLP_PAY_BEFORE"] = "Срок оплаты";
$MESS["SBLP_PAY_BEFORE_DESC"] = "Срок оплаты предложения";
$MESS["SBLP_SUPPLI"] = "Название компании-поставщика";
$MESS["SBLP_SUPPLI_DESC"] = "Название компании-поставщика (продавца)";
$MESS["SBLP_ADRESS_SUPPLI"] = "Адрес компании-поставщика";
$MESS["SBLP_ADRESS_SUPPLI_DESC"] = "Адрес компании-поставщика (продавца)";
$MESS["SBLP_PHONE_SUPPLI"] = "Телефон компании-поставщика";
$MESS["SBLP_PHONE_SUPPLI_DESC"] = "Телефон компании-поставщика (продавца)";
$MESS["SBLP_EMAIL_SUPPLI"] = "E-mail компании-поставщика";
$MESS["SBLP_EMAIL_SUPPLI_DESC"] = "E-mail компании-поставщика (продавца)";

$MESS["SBLP_BANK_ACCNO_SUPPLI"] = "Номер счета компании-поставщика";
$MESS["SBLP_BANK_ACCNO_SUPPLI_DESC"] = "Номер счета компании-поставщика (продавца)";
$MESS["SBLP_BANK_ACCNO_SUPPLI_VAL"] = "Номер счета компании-поставщика";
$MESS["SBLP_BANK_SUPPLI"] = "Банк компании-поставщика";
$MESS["SBLP_BANK_SUPPLI_DESC"] = "Банк компании-поставщика (продавца)";
$MESS["SBLP_BANK_SUPPLI_VAL"] = "Банк компании-поставщика";
$MESS["SBLP_BANK_BLZ_SUPPLI"] = "БИК банка компании-поставщика";
$MESS["SBLP_BANK_BLZ_SUPPLI_DESC"] = "БИК (BLZ) банка компании-поставщика (продавца)";
$MESS["SBLP_BANK_BLZ_SUPPLI_VAL"] = "БИК банка компании-поставщика";
$MESS["SBLP_BANK_IBAN_SUPPLI"] = "Международный номер банковского счёта компании-поставщика";
$MESS["SBLP_BANK_IBAN_SUPPLI_DESC"] = "Международный номер банковского счёта (IBAN) компании-поставщика (продавца)";
$MESS["SBLP_BANK_IBAN_SUPPLI_VAL"] = "Международный номер банковского счёта компании-поставщика";
$MESS["SBLP_BANK_SWIFT_SUPPLI"] = "SWIFT код банка компании-поставщика";
$MESS["SBLP_BANK_SWIFT_SUPPLI_DESC"] = "SWIFT код (BIC/SWIFT) банка компании-поставщика (продавца)";
$MESS["SBLP_BANK_SWIFT_SUPPLI_VAL"] = "SWIFT код банка компании-поставщика";

$MESS["SBLP_EU_INN_SUPPLI"] = "ЕС ИНН компании-поставщика";
$MESS["SBLP_EU_INN_SUPPLI_DESC"] = "ЕС ИНН компании-поставщика (продавца)";
$MESS["SBLP_INN_SUPPLI"] = "ИНН компании-поставщика";
$MESS["SBLP_INN_SUPPLI_DESC"] = "ИНН компании-поставщика (продавца)";
$MESS["SBLP_REG_SUPPLI"] = "Торговый регистр";
$MESS["SBLP_REG_SUPPLI_DESC"] = "Торговый регистр (продавца) с указанием номерав регистре";

$MESS["SBLP_DIR_POS_SUPPLI"] = "Должность руководителя";
$MESS["SBLP_DIR_POS_SUPPLI_DESC"] = "Должность руководителя (продавца)";
$MESS["SBLP_DIR_POS_SUPPLI_VAL"] = "Geschдftsfьhrer";
$MESS["SBLP_ACC_POS_SUPPLI"] = "Должность бухгалтера";
$MESS["SBLP_ACC_POS_SUPPLI_DESC"] = "Должность бухгалтера (продавца)";
$MESS["SBLP_ACC_POS_SUPPLI_VAL"] = "Buchhalter";

$MESS["SBLP_DIR_SUPPLI"] = "ФИО руководителя";
$MESS["SBLP_DIR_SUPPLI_DESC"] = "ФИО руководителя (продавца)";
$MESS["SBLP_ACC_SUPPLI"] = "ФИО бухгалтера";
$MESS["SBLP_ACC_SUPPLI_DESC"] = "ФИО бухгалтера (продавца)";

$MESS["SBLP_CUSTOMER_ID"] = "Код покупателя";
$MESS["SBLP_CUSTOMER"] = "Название компании-заказчика";
$MESS["SBLP_CUSTOMER_DESC"] = "Название компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_ADRES"] = "Адрес компании-заказчика";
$MESS["SBLP_CUSTOMER_ADRES_DESC"] = "Адрес компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_PHONE"] = "Телефон компании-заказчика";
$MESS["SBLP_CUSTOMER_PHONE_DESC"] = "Телефон компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_EMAIL"] = "E-mail компании-заказчика";
$MESS["SBLP_CUSTOMER_EMAIL_DESC"] = "E-mail компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_FAX"] = "Факс компании-заказчика";
$MESS["SBLP_CUSTOMER_FAX_DESC"] = "Факс компании-заказчика (покупателя)";
$MESS["SBLP_CUSTOMER_PERSON"] = "Контактное лицо компании-заказчика";
$MESS["SBLP_CUSTOMER_PERSON_DESC"] = "Контактное лицо компании-заказчика (покупателя)";
$MESS["SBLP_PRINT"] = "Печать (рекомендуемые размеры 150x150&nbsp;px)";
$MESS["SBLP_PRINT_DESC"] = "Изображение печати поставщика на сайте";
$MESS["SBLP_LOGO"] = "Логотип компании-поставщика (рекомендуемые размеры 80x80&nbsp;px)";
$MESS["SBLP_LOGO_DESC"] = "Логотип компании-поставщика";

$MESS["SBLP_DIR_SIGN_SUPPLI"] = "Подпись генерального директора (рекомендуемые размеры 200x50&nbsp;px)";
$MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Изображение подписи генерального директора";
$MESS["SBLP_ACC_SIGN_SUPPLI"] = "Подпись главного бухгалтера (рекомендуемые размеры 200x50&nbsp;px)";
$MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Изображение подписи главного бухгалтера";

$MESS["SBLP_BACKGROUND"] = "Фон (рекомендуемые размеры 800x1120&nbsp;px)";
$MESS["SBLP_BACKGROUND_DESC"] = "Изображение фона для счета";

$MESS["SBLP_BACKGROUND_STYLE"] = "Стиль отображения фона";
$MESS["SBLP_BACKGROUND_STYLE_NONE"] = "Как есть";
$MESS["SBLP_BACKGROUND_STYLE_TILE"] = "Замостить";
$MESS["SBLP_BACKGROUND_STYLE_STRETCH"] = "Растянуть";

$MESS["SBLP_MARGIN_TOP"] = "Отступ сверху страницы (мм)";
$MESS["SBLP_MARGIN_RIGHT"] = "Отступ справа страницы (мм)";
$MESS["SBLP_MARGIN_BOTTOM"] = "Отступ снизу страницы (мм)";
$MESS["SBLP_MARGIN_LEFT"] = "Отступ слева страницы (мм)";

$MESS["SBLP_COMMENT1"] = "Комментарий 1";
$MESS["SBLP_COMMENT2"] = "Комментарий 2";
$MESS["SBLP_USERFIELD1"] = "Пользовательское поле 1";
$MESS["SBLP_USERFIELD2"] = "Пользовательское поле 2";
$MESS["SBLP_USERFIELD3"] = "Пользовательское поле 3";
$MESS["SBLP_USERFIELD4"] = "Пользовательское поле 4";
$MESS["SBLP_USERFIELD5"] = "Пользовательское поле 5";

$MESS["SBLP_LOGO_DPI"] = "Масштаб логотипа";
$MESS["SBLP_LOGO_DPI_72"] = "133% (72 dpi)";
$MESS["SBLP_LOGO_DPI_96"] = "100% (96 dpi)";
$MESS["SBLP_LOGO_DPI_150"] = "64% (150 dpi)";
$MESS["SBLP_LOGO_DPI_300"] = "32% (300 dpi)";
$MESS["SBLP_LOGO_DPI_600"] = "16% (600 dpi)";

$MESS["SBLP_Q_EN_COLUMN_NUMBER_TITLE"] = "Заголовок для колонки \"#\"";
$MESS["SBLP_Q_EN_COLUMN_NUMBER_VALUE"] = "#";

$MESS["SBLP_Q_EN_COLUMN_NAME_TITLE"] = "Заголовок для колонки \"Item / Description\"";
$MESS["SBLP_Q_EN_COLUMN_NAME_VALUE"] = "Item / Description";

$MESS["SBLP_Q_EN_COLUMN_QUANTITY_TITLE"] = "Заголовок для колонки \"Qty\"";
$MESS["SBLP_Q_EN_COLUMN_QUANTITY_VALUE"] = "Qty";

$MESS["SBLP_Q_EN_COLUMN_MEASURE_TITLE"] = "Заголовок для колонки \"Units\"";
$MESS["SBLP_Q_EN_COLUMN_MEASURE_VALUE"] = "Units";

$MESS["SBLP_Q_EN_COLUMN_PRICE_TITLE"] = "Заголовок для колонки \"Unit Price\"";
$MESS["SBLP_Q_EN_COLUMN_PRICE_VALUE"] = "Unit Price";

$MESS["SBLP_Q_EN_COLUMN_SUM_TITLE"] = "Заголовок для колонки \"Total\"";
$MESS["SBLP_Q_EN_COLUMN_SUM_VALUE"] = "Total";

$MESS["SBLP_Q_EN_COLUMN_VAT_RATE_TITLE"] = "Заголовок для колонки \"Tax Rate\"";
$MESS["SBLP_Q_EN_COLUMN_VAT_RATE_VALUE"] = "Tax Rate";

$MESS["SBLP_Q_EN_COLUMN_DISCOUNT_TITLE"] = "Заголовок для колонки \"Discount\"";
$MESS["SBLP_Q_EN_COLUMN_DISCOUNT_VALUE"] = "Discount";

$MESS["SBLP_Q_EN_COLUMN_SHOW"] = "Активность";
$MESS["SBLP_Q_EN_COLUMN_SORT"] = "Сортировка";
$MESS["SBLP_Q_EN_HEADER_SHOW"] = "Выводить шапку предложения";
$MESS["SBLP_Q_EN_TOTAL_SHOW"] = "Выводить итоговую информацию";
$MESS["SBLP_Q_EN_SIGN_SHOW"] = "Показывать подписи";
include/sale_payment/quote_en/pdf.php000066400000071375147714176230014004 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
$arPaySysAction["ENCODING"] = "";

if (!CSalePdf::isPdfAvailable())
	die();

if ($_REQUEST['BLANK'] == 'Y')
	$blank = true;

/** @var CSaleTfpdf $pdf */
$pdf = new CSalePdf('P', 'pt', 'A4');

if (CSalePaySystemAction::GetParamValue('BACKGROUND', false))
{
	$pdf->SetBackground(
		CSalePaySystemAction::GetParamValue('BACKGROUND', false),
		CSalePaySystemAction::GetParamValue('BACKGROUND_STYLE', false)
	);
}

$pageWidth  = $pdf->GetPageWidth();
$pageHeight = $pdf->GetPageHeight();

$pdf->AddFont('Font', '', 'pt_sans-regular.ttf', true);
$pdf->AddFont('Font', 'B', 'pt_sans-bold.ttf', true);

$fontFamily = 'Font';
$fontSize   = 10.5;

$margin = array(
	'top' => intval(CSalePaySystemAction::GetParamValue('MARGIN_TOP', false) ?: 15) * 72/25.4,
	'right' => intval(CSalePaySystemAction::GetParamValue('MARGIN_RIGHT', false) ?: 15) * 72/25.4,
	'bottom' => intval(CSalePaySystemAction::GetParamValue('MARGIN_BOTTOM', false) ?: 15) * 72/25.4,
	'left' => intval(CSalePaySystemAction::GetParamValue('MARGIN_LEFT', false) ?: 20) * 72/25.4
);

$width = $pageWidth - $margin['left'] - $margin['right'];
$minRowWidth = 10;

$pdf->SetDisplayMode(100, 'continuous');
$pdf->SetMargins($margin['left'], $margin['top'], $margin['right']);
$pdf->SetAutoPageBreak(true, $margin['bottom']);

$pdf->AddPage();
$pdf->SetFont($fontFamily, '', $fontSize);

$y0 = $pdf->GetY();
$logoHeight = 0;
$logoWidth = 0;

if (CSalePaySystemAction::GetParamValue('QUOTE_EN_HEADER_SHOW') == 'Y')
{
	$pathToLogo = CSalePaySystemAction::GetParamValue('PATH_TO_LOGO', false);
	if ($pathToLogo)
	{
		list($imageHeight, $imageWidth) = $pdf->GetImageSize($pathToLogo);

		$imgDpi = intval(CSalePaySystemAction::GetParamValue('LOGO_DPI', false)) ?: 96;
		$imgZoom = 96 / $imgDpi;

		$logoHeight = $imageHeight * $imgZoom + 5;
		$logoWidth  = $imageWidth * $imgZoom + 5;

		$pdf->Image($pathToLogo, $pdf->GetX(), $pdf->GetY(), -$imgDpi, -$imgDpi);
	}
	unset($pathToLogo);

	// region Seller info
	$topLogo = false;
	$minTextWidth = 20;
	$textWidth = $width - $logoWidth - 10;

	if ($textWidth < $minTextWidth)
		$topLogo = true;

	if ($topLogo)
	{
		$textLeftMargin = 0;
		$textWidth = $width - 10;
		$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
		$pdf->Ln(10);
	}
	else
	{
		$textLeftMargin = $logoWidth;
	}

	$sellerName =  CSalePaySystemAction::GetParamValue("SELLER_NAME", false);
	if($sellerName)
	{
		$pdf->SetFont($fontFamily, 'B', $fontSize);

		$text = CSalePdf::prepareToPdf($sellerName);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);

		$pdf->SetFont($fontFamily, '', $fontSize);
	}

	$sellerAddress = CSalePaySystemAction::GetParamValue("SELLER_ADDRESS", false);
	if($sellerAddress)
	{
		if (is_string($sellerAddress))
		{
			$sellerAddress = explode("\n", str_replace(array("\r\n", "\n", "\r"), "\n", $sellerAddress));
			if (count($sellerAddress) === 1)
				$sellerAddress = $sellerAddress[0];
		}
		if (is_array($sellerAddress))
		{
			foreach ($sellerAddress as $item)
			{
				$text = CSalePdf::prepareToPdf($item);
				while ($pdf->GetStringWidth($text))
				{
					list($string, $text) = $pdf->splitString($text, $textWidth);
					$pdf->SetX($pdf->GetX() + $textLeftMargin);
					$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
					$pdf->Ln();
				}
				unset($text, $string);
			}
			unset($item);
		}
		else
		{
			$text = CSalePdf::prepareToPdf($sellerAddress);
			while ($pdf->GetStringWidth($text))
			{
				list($string, $text) = $pdf->splitString($text, $textWidth);
				$pdf->SetX($pdf->GetX() + $textLeftMargin);
				$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
				$pdf->Ln();
			}
			unset($text, $string);
		}
	}

	$sellerPhone = CSalePaySystemAction::GetParamValue("SELLER_PHONE", false);
	if($sellerPhone)
	{
		$sellerPhone = sprintf("Phone: %s", $sellerPhone);
		$text = CSalePdf::prepareToPdf($sellerPhone);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}

	$sellerEmail = CSalePaySystemAction::GetParamValue("SELLER_EMAIL", false);
	if($sellerEmail)
	{
		$sellerEmail = sprintf("E-mail: %s", $sellerEmail);
		$text = CSalePdf::prepareToPdf($sellerEmail);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX() + $textLeftMargin);
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}

	if (!$topLogo)
	{
		$pdf->SetY(max($y0 + $logoHeight, $pdf->GetY()));
		$pdf->Ln(10);
	}

	unset($topLogo, $minTextWidth, $textWidth, $textLeftMargin);
	// endregion Seller info

	$pdf->SetFont($fontFamily, 'B', $fontSize);

	if (CSalePaySystemAction::GetParamValue("BUYER_NAME", false))
	{
		$pdf->Write(15, CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("BUYER_NAME", false)));
		$pdf->Ln();

		$pdf->SetFont($fontFamily, '', $fontSize);
		$buyerAddress = CSalePaySystemAction::GetParamValue("BUYER_ADDRESS", false);
		if($buyerAddress)
		{
			if (is_string($buyerAddress))
			{
				$buyerAddress = explode("\n", str_replace(array("\r\n", "\n", "\r"), "\n", $buyerAddress));
				if (count($buyerAddress) === 1)
					$buyerAddress = $buyerAddress[0];
			}
			if (is_array($buyerAddress))
			{
				foreach ($buyerAddress as $item)
				{
					$pdf->Write(15, CSalePdf::prepareToPdf($item));
					$pdf->Ln();
				}
				unset($item);
			}
			else
			{
				$pdf->Write(15, CSalePdf::prepareToPdf($buyerAddress));
				$pdf->Ln();
			}
		}
	}

	$textWidth = $width - 10;
	$buyerPayerName = CSalePaySystemAction::GetParamValue("BUYER_PAYER_NAME", false);
	if($buyerPayerName)
	{
		$buyerPayerName = sprintf("Contact person: %s", $buyerPayerName);
		$text = CSalePdf::prepareToPdf($buyerPayerName);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX());
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}
	unset($buyerPayerName);

	$buyerPhone = CSalePaySystemAction::GetParamValue("BUYER_PHONE", false);
	if($buyerPhone)
	{
		$buyerPhone = sprintf("Phone: %s", $buyerPhone);
		$text = CSalePdf::prepareToPdf($buyerPhone);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX());
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}
	unset($buyerPhone);

	$buyerFax = CSalePaySystemAction::GetParamValue("BUYER_FAX", false);
	if($buyerFax)
	{
		$buyerFax = sprintf("Fax: %s", $buyerFax);
		$text = CSalePdf::prepareToPdf($buyerFax);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX());
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}
	unset($buyerFax);

	$buyerEmail = CSalePaySystemAction::GetParamValue("BUYER_EMAIL", false);
	if($buyerEmail)
	{
		$buyerEmail = sprintf("E-mail: %s", $buyerEmail);
		$text = CSalePdf::prepareToPdf($buyerEmail);
		while ($pdf->GetStringWidth($text))
		{
			list($string, $text) = $pdf->splitString($text, $textWidth);
			$pdf->SetX($pdf->GetX());
			$pdf->Cell($textWidth, 15, $string, 0, 0, 'L');
			$pdf->Ln();
		}
		unset($text, $string);
	}
	unset($textWidth, $buyerEmail);

	$pdf->Ln();
	$pdf->Ln();


	$pdf->SetFont($fontFamily, 'B', $fontSize * 1.5);
	$pdf->Cell(0.35*$width, 15, CSalePdf::prepareToPdf(sprintf(
		'Quote # %s',
		$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"]
	)));

	$pdf->SetFont($fontFamily, 'B', $fontSize);
	$pdf->Cell(0, 15, CSalePdf::prepareToPdf(sprintf(
		'Issue Date: %s',
		CSalePaySystemAction::GetParamValue("DATE_INSERT", false)
	)), 0, 0, 'R');
	$pdf->Ln();
}

$userFields = array();
for($i = 1; $i <= 5; $i++)
{
	$fildValue = CSalePaySystemAction::GetParamValue("USER_FIELD_{$i}", false);
	if($fildValue)
	{
		$userFields[] = $fildValue;
	}
}

$pdf->SetFont($fontFamily, '', $fontSize);

if (CSalePaySystemAction::GetParamValue("COMMENT1", false)
	|| CSalePaySystemAction::GetParamValue("COMMENT2", false))
{
	$pdf->Ln();
	if (CSalePaySystemAction::GetParamValue("COMMENT1", false))
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("COMMENT1", false))
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}

	if (CSalePaySystemAction::GetParamValue("COMMENT2", false))
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("COMMENT2", false))
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}
}
else
{
	$pdf->Ln();
}

$arBasketItems = CSalePaySystemAction::GetParamValue("BASKET_ITEMS", false);
if(!is_array($arBasketItems))
	$arBasketItems = array();

$pdf->SetFont($fontFamily, '', $fontSize);

$arCols = array();
$arCells = array();

// items list
if (!empty($arBasketItems))
{
	$arBasketItems = getMeasures($arBasketItems);

	$columnList = array('NUMBER', 'NAME', 'QUANTITY', 'MEASURE', 'PRICE', 'VAT_RATE', 'DISCOUNT', 'SUM');
	$vatRateColumn = 0;
	foreach ($columnList as $column)
	{
		if (CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_SHOW') == 'Y')
		{
			$arCols[$column] = array(
				'NAME' => CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_TITLE')),
				'SORT' => CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_'.$column.'_SORT')
			);
		}
	}

	if (CSalePaySystemAction::GetParamValue('USER_COLUMNS'))
	{
		$userColumns = CSalePaySystemAction::GetParamValue('USER_COLUMNS');
		$columnList = array_merge($columnList, array_keys($userColumns));
		foreach ($userColumns as $id => $val)
		{
			$arCols[$id] = array(
				'NAME' => CSalePdf::prepareToPdf($val['NAME']),
				'SORT' => $val['SORT']
			);
		}
	}

	uasort($arCols, function ($a, $b) {return ($a['SORT'] < $b['SORT']) ? -1 : 1;});

	$arColumnKeys = array_keys($arCols);
	$columnCount = count($arColumnKeys);

	$n = 0;
	$sum = 0.00;
	$vat = 0;
	$vats = array();
	$arProps = array();

	foreach($arBasketItems as &$arBasket)
	{
		// @TODO: replace with real vatless price
		if (isset($arBasket['VAT_INCLUDED']) && $arBasket['VAT_INCLUDED'] === 'Y')
			$arBasket["VATLESS_PRICE"] = roundEx($arBasket["PRICE"] / (1 + $arBasket["VAT_RATE"]), SALE_VALUE_PRECISION);
		else
			$arBasket["VATLESS_PRICE"] = $arBasket["PRICE"];

		$productName = $arBasket["NAME"];
		if ($productName == "OrderDelivery")
			$productName = CSalePdf::prepareToPdf("Shipping");
		else if ($productName == "OrderDiscount")
			$productName = CSalePdf::prepareToPdf("Discount");

		// discount
		$discountValue = '0%';
		$discountSum = 0.0;
		$discountIsSet = false;
		if (is_array($arBasket['CRM_PR_FIELDS']))
		{
			if (isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE'])
				&& isset($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']))
			{
				if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::PERCENTAGE)
				{
					$discountValue = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_RATE']), 2).'%';
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountIsSet = true;
				}
				else if ($arBasket['CRM_PR_FIELDS']['DISCOUNT_TYPE_ID'] === \Bitrix\Crm\Discount::MONETARY)
				{
					$discountSum = round(doubleval($arBasket['CRM_PR_FIELDS']['DISCOUNT_SUM']), 2);
					$discountValue = SaleFormatCurrency($discountSum, $arBasket["CURRENCY"], false);
					$discountIsSet = true;
				}
			}
		}
		if ($discountIsSet && $discountSum > 0)
			$bShowDiscount = true;
		unset($discountIsSet);

		if ($bShowDiscount
			&& isset($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_NETTO'])
			&& isset($arBasket['CRM_PR_FIELDS']['PRICE_BRUTTO']))
		{
			if ($arBasket['CRM_PR_FIELDS']['TAX_INCLUDED'] === 'Y')
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_BRUTTO"];
			else
				$unitPrice = $arBasket['CRM_PR_FIELDS']["PRICE_NETTO"];
		}
		else
		{
			$unitPrice = $arBasket["VATLESS_PRICE"];
		}
		$arCells[++$n] = array();
		foreach ($arCols as $columnId => $col)
		{
			$data = null;

			switch ($columnId)
			{
				case 'NUMBER':
					$data = CSalePdf::prepareToPdf($n);
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'NAME':
					$data = CSalePdf::prepareToPdf($productName);
					break;
				case 'QUANTITY':
					$data = CSalePdf::prepareToPdf(roundEx($arBasket["QUANTITY"], SALE_VALUE_PRECISION));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'MEASURE':
					$data = CSalePdf::prepareToPdf($arBasket["MEASURE_NAME"] ? $arBasket["MEASURE_NAME"] : 'pcs');
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'PRICE':
					$data = CSalePdf::prepareToPdf(SaleFormatCurrency($unitPrice, $arBasket['CURRENCY'], false));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'DISCOUNT':
					$data = CSalePdf::prepareToPdf($discountValue);
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'VAT_RATE':
					$data = CSalePdf::prepareToPdf(roundEx($arBasket["VAT_RATE"]*100, SALE_VALUE_PRECISION)."%");
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				case 'SUM':
					$data = CSalePdf::prepareToPdf(SaleFormatCurrency($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"], $arBasket["CURRENCY"], false));
					$arCols[$columnId]['IS_DIGIT'] = true;
					break;
				default:
					if ($arBasket[$columnId] != '' && preg_match('/[^0-9 ,\.]/', $arBasket[$columnId]) === 0)
					{
						if (!array_key_exists('IS_DIGIT', $arCols[$columnId]))
							$arCols[$columnId]['IS_DIGIT'] = true;
					}
					else
					{
						$arCols[$columnId]['IS_DIGIT'] = false;
					}

					$data = ($arBasket[$columnId]) ? CSalePdf::prepareToPdf($arBasket[$columnId]) : '';
			}
			if ($data !== null)
				$arCells[$n][$columnId] = $data;
		}

		if(isset($arBasket["PROPS"]) && is_array($arBasket["PROPS"]))
		{
			$arProps[$n] = array();
			foreach($arBasket["PROPS"] as $vv)
				$arProps[$n][] = CSalePdf::prepareToPdf(sprintf("%s: %s", $vv["NAME"], $vv["VALUE"]));
		}

		$sum += doubleval($arBasket["VATLESS_PRICE"] * $arBasket["QUANTITY"]);
		$vat = max($vat, $arBasket["VAT_RATE"]);
		$vatKey = strval($arBasket["VAT_RATE"]);
		if ($arBasket["VAT_RATE"] > 0)
		{
			if (!isset($vats[$vatKey]))
				$vats[$vatKey] = 0;
			if ($arBasket['VAT_INCLUDED'] === 'Y')
				$vats[$vatKey] += ($arBasket["PRICE"] - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
			else
				$vats[$vatKey] += ($arBasket["PRICE"] * (1 + $arBasket["VAT_RATE"]) - $arBasket["VATLESS_PRICE"]) * $arBasket["QUANTITY"];
		}
	}
	unset($arBasket);

	if ($vat <= 0)
	{
		unset($arCols['VAT_RATE']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['VAT_RATE']);
	}

	if (!$bShowDiscount)
	{
		unset($arCols['DISCOUNT']);
		$columnCount = count($arCols);
		$arColumnKeys = array_keys($arCols);
		foreach ($arCells as $i => $cell)
			unset($arCells[$i]['DISCOUNT']);
	}

	$items = $n;

	if (CSalePaySystemAction::GetParamValue('QUOTE_EN_TOTAL_SHOW') == 'Y')
	{
		$eps = 0.0001;
		if ($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum > $eps)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf("Subtotal:");
			$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($sum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false));
		}

		if (!empty($vats))
		{
			// @TODO: remove on real vatless price implemented
			$delta = intval(roundEx(
				$GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["PRICE"] - $sum - array_sum($vats),
				SALE_VALUE_PRECISION
			) * pow(10, SALE_VALUE_PRECISION));
			if ($delta)
			{
				$vatRates = array_keys($vats);
				rsort($vatRates);

				$ful = intval($delta / count($vatRates));
				$ost = $delta % count($vatRates);

				foreach ($vatRates as $vatRate)
				{
					$vats[$vatRate] += ($ful + $ost) / pow(10, SALE_VALUE_PRECISION);

					if ($ost > 0)
						$ost--;
				}
			}

			foreach ($vats as $vatRate => $vatSum)
			{
				$arCells[++$n] = array();
				for ($i = 0; $i < $columnCount; $i++)
					$arCells[$n][$arColumnKeys[$i]] = null;

				$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf(sprintf("Tax (%s%%):", roundEx($vatRate * 100, SALE_VALUE_PRECISION)));
				$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($vatSum, $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false));
			}
		}
		else
		{
			$arTaxList = CSalePaySystemAction::GetParamValue("TAX_LIST", false);
			if(!is_array($arTaxList))
				$arTaxList = array();
			if(!empty($arTaxList))
			{
				foreach($arTaxList as &$arTaxInfo)
				{
					$arCells[++$n] = array();
					for ($i = 0; $i < $columnCount; $i++)
						$arCells[$n][$arColumnKeys[$i]] = null;

					$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf(sprintf(
						"%s%s%s:",
						($arTaxInfo["IS_IN_PRICE"] == "Y") ? "Included " : "",
						$arTaxInfo["TAX_NAME"],
						sprintf(' (%s%%)', roundEx($arTaxInfo["VALUE"],SALE_VALUE_PRECISION))
					));
					$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($arTaxInfo["VALUE_MONEY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false));
				}
				unset($arTaxInfo);
			}
		}

		if (DoubleVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"]) > 0)
		{
			$arCells[++$n] = array();
			for ($i = 0; $i < $columnCount; $i++)
				$arCells[$n][$arColumnKeys[$i]] = null;

			$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf(CSalePdf::prepareToPdf("Discount:"));
			$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DISCOUNT_VALUE"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false));
		}

		$arCells[++$n] = array();
		for ($i = 0; $i < $columnCount; $i++)
			$arCells[$n][$arColumnKeys[$i]] = null;

		$arCells[$n][$arColumnKeys[$columnCount-2]] = CSalePdf::prepareToPdf("Total:");
		$arCells[$n][$arColumnKeys[$columnCount-1]] = CSalePdf::prepareToPdf(SaleFormatCurrency($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"], $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["CURRENCY"], false));
	}

	$rowsInfo = $pdf->calculateRowsWidth($arCols, $arCells, $items, $width);
	$arRowsWidth = $rowsInfo['ROWS_WIDTH'];
	$arRowsContentWidth = $rowsInfo['ROWS_CONTENT_WIDTH'];
}

$x0 = $pdf->GetX();

$l = 0;
do
{
	$y0 = $pdf->GetY();
	$newLine = false;
	foreach ($arCols as $columnId => $column)
	{
		list($string, $arCols[$columnId]['NAME']) = $pdf->splitString($column['NAME'], $arRowsContentWidth[$columnId]);
		if (($vat > 0 || $columnId !== 'VAT_RATE') && ($bShowDiscount || $columnId !== 'DISCOUNT'))
			$pdf->Cell($arRowsWidth[$columnId], 20, $string, 0, 0, 'C');

		if ($arCols[$columnId]['NAME'])
			$newLine = true;

		$i = array_search($columnId, $arColumnKeys);
		${"x".($i+1)} = $pdf->GetX();
	}
	if ($arCols && $l === 0)
	{
		$y = $pdf->GetY();
		if ($y0 > $y)
			$y0 = $margin['top'];
		unset($y);
		$pdf->Line($x0, $y0, ${"x".$columnCount}, $y0);
	}

	$pdf->Ln();
	$l++;

	$y5 = $pdf->GetY();

	if ($y0 > $y5)
		$y0 = $margin['top'];

	for ($i = 0; $i <= $columnCount; $i++)
	{
		if (($vat > 0 || $arColumnKeys[$i] !== 'VAT_RATE') && ($bShowDiscount || $arColumnKeys[$i] !== 'DISCOUNT'))
			$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
	}
}
while($newLine);

if ($arCols)
	$pdf->Line($x0, $y5, ${'x'.$columnCount}, $y5);

$rowsCnt = count($arCells);
for ($n = 1; $n <= $rowsCnt; $n++)
{
	$arRowsWidth_tmp = $arRowsWidth;
	$arRowsContentWidth_tmp = $arRowsContentWidth;
	$accumulated = 0;
	$accumulatedContent = 0;
	foreach ($arCols as $columnId => $column)
	{
		if (is_null($arCells[$n][$columnId]))
		{
			$accumulated += $arRowsWidth_tmp[$columnId];
			$arRowsWidth_tmp[$columnId] = null;
			$accumulatedContent += $arRowsContentWidth_tmp[$columnId];
			$arRowsContentWidth_tmp[$columnId] = null;
		}
		else
		{
			$arRowsWidth_tmp[$columnId] += $accumulated;
			$arRowsContentWidth_tmp[$columnId] += $accumulatedContent;
			$accumulated = 0;
			$accumulatedContent = 0;
		}
	}

	$x0 = $pdf->GetX();

	$pdf->SetFont($fontFamily, '', $fontSize);

	$l = 0;
	do
	{
		$y0 = $pdf->GetY();
		$newLine = false;
		foreach ($arCols as $columnId => $column)
		{
			$string = '';
			if (!is_null($arCells[$n][$columnId]))
				list($string, $arCells[$n][$columnId]) = $pdf->splitString($arCells[$n][$columnId], $arRowsContentWidth_tmp[$columnId]);

			$rowWidth = $arRowsWidth_tmp[$columnId];

			if (in_array($columnId, array('QUANTITY', 'MEASURE', 'PRICE', 'SUM')))
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
				}
			}
			elseif ($columnId == 'NUMBER')
			{
				if (!is_null($arCells[$n][$columnId]))
					$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'C');
			}
			elseif ($columnId == 'NAME')
			{
				if (!is_null($arCells[$n][$columnId]))
					$pdf->Cell($rowWidth, 15, $string, 0, 0,  ($n > $items) ? 'R' : '');
			}
			elseif ($columnId == 'VAT_RATE')
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					if (is_null($arCells[$n][$columnId]))
						$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
					else if ($vat > 0)
						$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'R');
				}
			}
			elseif ($columnId == 'DISCOUNT')
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					if (is_null($arCells[$n][$columnId]))
						$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
					else if ($bShowDiscount)
						$pdf->Cell($rowWidth, 15, ($l == 0) ? $string : '', 0, 0, 'R');
				}
			}
			else
			{
				if (!is_null($arCells[$n][$columnId]))
				{
					$pdf->Cell($rowWidth, 15, $string, 0, 0, 'R');
				}
			}

			if ($l == 0)
			{
				$pos = array_search($columnId, $arColumnKeys);
				${'x'.($pos+1)} = $pdf->GetX();
			}

			if ($arCells[$n][$columnId])
				$newLine = true;
		}

		$pdf->Ln();
		$l++;

		$y5 = $pdf->GetY();

		if ($y0 > $y5)
			$y0 = $margin['top'];

		for ($i = ($n > $items) ? $columnCount - 1 : 0; $i <= $columnCount; $i++)
		{
			if ($vat > 0 || $arColumnKeys[$i] != 'VAT_RATE')
				$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
		}
	}
	while($newLine);

	if (CSalePaySystemAction::GetParamValue('QUOTE_EN_COLUMN_NAME_SHOW') == 'Y')
	{
		if (isset($arProps[$n]) && is_array($arProps[$n]))
		{
			$pdf->SetFont($fontFamily, '', $fontSize - 2);
			foreach ($arProps[$n] as $property)
			{
				$y0 = $pdf->GetY();
				$i = 0;
				$line = 0;
				foreach ($arCols as $columnId => $caption)
				{
					$i++;
					if ($i == $columnCount)
						$line = 1;
					if ($columnId == 'NAME')
						$pdf->Cell($arRowsWidth_tmp[$columnId], 12, $property, 0, $line);
					else
						$pdf->Cell($arRowsWidth_tmp[$columnId], 12, '', 0, $line);
				}
				$y5 = $pdf->GetY();

				if ($y0 > $y5)
					$y0 = $margin['top'];

				for ($i = ($n > $items) ? $columnCount - 1 : 0; $i <= $columnCount; $i++)
				{
					if ($vat > 0 || $arColumnKeys[$i] != 'VAT_RATE')
						$pdf->Line(${"x$i"}, $y0, ${"x$i"}, $y5);
				}
			}
		}
	}

	$pdf->Line(($n <= $items) ? $x0 : ${'x'.($columnCount-1)}, $y5, ${'x'.$columnCount}, $y5);
}
$pdf->Ln();

if (CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false))
{
	$pdf->Cell(
		$width,
		15,
		$pdf->prepareToPdf(
			sprintf(
				'Due Date: %s',
				ConvertDateTime(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false), FORMAT_DATE))
		),
		0,
		0,
		'L'
	);
}

$pdf->Ln();
if (!empty($userFields))
{
	foreach($userFields as &$userField)
	{
		$pdf->Write(15, HTMLToTxt(preg_replace(
			array('#</div>\s*<div[^>]*>#i', '#</?div>#i', '#<br/?>$#'), array('<br>', '<br>', ''),
			CSalePdf::prepareToPdf($userField)
		), '', array(), 0));
		$pdf->Ln();
		$pdf->Ln();
	}
	unset($userField);
}
$pdf->Ln();
$pdf->Ln();

if (CSalePaySystemAction::GetParamValue('QUOTE_EN_SIGN_SHOW') == 'Y')
{
	if (!$blank && CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false))
	{
		list($stampHeight, $stampWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false));

		if ($stampHeight && $stampWidth)
		{
			if ($stampHeight > 120 || $stampWidth > 120)
			{
				$ratio = 120 / max($stampHeight, $stampWidth);
				$stampHeight = $ratio * $stampHeight;
				$stampWidth  = $ratio * $stampWidth;
			}

			$imageY = $pdf->GetY();
			$pageNumBefore = $pdf->PageNo();

			$pdf->Image(
				CSalePaySystemAction::GetParamValue('PATH_TO_STAMP', false),
				$margin['left']+$width/2+45, null,
				$stampWidth, $stampHeight
			);

			$pageNumAfter = $pdf->PageNo();
			if ($pageNumAfter === $pageNumBefore)
				$pdf->SetY($imageY);
			else
				$pdf->SetY($pdf->GetY() - $stampHeight);
			unset($imageY, $pageNumBefore, $pageNumAfter);
		}
	}

	if (CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
	{
		$isDirSign = false;
		if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false))
		{
			list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false));

			if ($signHeight && $signWidth)
			{
				$ratio = min(37.5/$signHeight, 150/$signWidth);
				$signHeight = $ratio * $signHeight;
				$signWidth  = $ratio * $signWidth;

				$isDirSign = true;
			}
		}

		$sellerDirPos = HTMLToTxt(
			preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'),
				array('<br>', '<br>'),
				CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_DIR_POS", false))
			), '', array(), 0
		);
		if ($isDirSign && $pdf->GetStringWidth($sellerDirPos) <= 160)
			$pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
		$pdf->MultiCell(150, 15, $sellerDirPos, 0, 'L');
		$pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);

		if ($isDirSign)
		{
			$pdf->Image(
				CSalePaySystemAction::GetParamValue('SELLER_DIR_SIGN', false),
				$pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
				$signWidth, $signHeight
			);
		}

		$x1 = $pdf->GetX();
		$pdf->Cell(160, 15, '');
		$x2 = $pdf->GetX();

		if (CSalePaySystemAction::GetParamValue("SELLER_DIR", false))
			$pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_DIR", false).')'));
		$pdf->Ln();

		$y2 = $pdf->GetY();
		$pdf->Line($x1, $y2, $x2, $y2);

		$pdf->Ln();
	}

	if (CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
	{
		$isAccSign = false;
		if (!$blank && CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false))
		{
			list($signHeight, $signWidth) = $pdf->GetImageSize(CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false));

			if ($signHeight && $signWidth)
			{
				$ratio = min(37.5/$signHeight, 150/$signWidth);
				$signHeight = $ratio * $signHeight;
				$signWidth  = $ratio * $signWidth;

				$isAccSign = true;
			}
		}

		$sellerAccPos = HTMLToTxt(
			preg_replace(
				array('#</div>\s*<div[^>]*>#i', '#</?div>#i'),
				array('<br>', '<br>'),
				CSalePdf::prepareToPdf(CSalePaySystemAction::GetParamValue("SELLER_ACC_POS", false))
			), '', array(), 0
		);
		if ($isAccSign && $pdf->GetStringWidth($sellerAccPos) <= 160)
			$pdf->SetY($pdf->GetY() + min($signHeight, 30) - 15);
		$pdf->MultiCell(150, 15, $sellerAccPos, 0, 'L');
		$pdf->SetXY($margin['left'] + 150, $pdf->GetY() - 15);

		if ($isAccSign)
		{
			$pdf->Image(
				CSalePaySystemAction::GetParamValue('SELLER_ACC_SIGN', false),
				$pdf->GetX() + 80 - $signWidth/2, $pdf->GetY() - $signHeight + 15,
				$signWidth, $signHeight
			);
		}

		$x1 = $pdf->GetX();
		$pdf->Cell((CSalePaySystemAction::GetParamValue("SELLER_DIR", false)) ? $x2-$x1 : 160, 15, '');
		$x2 = $pdf->GetX();

		if (CSalePaySystemAction::GetParamValue("SELLER_ACC", false))
			$pdf->Write(15, CSalePdf::prepareToPdf('('.CSalePaySystemAction::GetParamValue("SELLER_ACC", false).')'));
		$pdf->Ln();

		$y2 = $pdf->GetY();
		$pdf->Line($x1, $y2, $x2, $y2);
	}
}

$dest = 'I';
if ($_REQUEST['GET_CONTENT'] == 'Y')
	$dest = 'S';
else if ($_REQUEST['DOWNLOAD'] == 'Y')
	$dest = 'D';

$fileName = sprintf(
	'Quote # %s (Issue Date %s).pdf',
	str_replace(
		array(
			chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8), chr(9), chr(10), chr(11),
			chr(12), chr(13), chr(14), chr(15), chr(16), chr(17), chr(18), chr(19), chr(20), chr(21), chr(22),
			chr(23), chr(24), chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31),
			'"', '*', '/', ':', '<', '>', '?', '\\', '|'
		),
		'_',
		strval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ACCOUNT_NUMBER"])
	),
	ConvertDateTime($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["DATE_INSERT"], 'YYYY-MM-DD')
);

$trFileName = CUtil::translit($fileName, 'en', array('max_len' => 1024, 'safe_chars' => '.', 'replace_space' => '-'));

return $pdf->Output($trFileName, $dest, $fileName);
?>include/sale_payment/quote_en/.description.php000066400000040151147714176230015620 0ustar00<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?

global $MESS;

$langFile = GetLangFileName(dirname(__FILE__)."/", "/quote.php");

if(file_exists($langFile))
	include($langFile);

$psTitle = GetMessage("SBLP_DTITLE");
$psDescription = GetMessage("SBLP_DDESCR");

$isAffordPdf = true;

$arPSCorrespondence = array(
		"DATE_INSERT" => array(
				"NAME" => GetMessage("SBLP_DATE"),
				"DESCR" => GetMessage("SBLP_DATE_DESC"),
				"VALUE" => "DATE_INSERT_DATE",
				"TYPE" => "ORDER",
				"GROUP" => "PAYMENT",
				"SORT" => 100
			),

		"DATE_PAY_BEFORE" => array(
				"NAME" => GetMessage("SBLP_PAY_BEFORE"),
				"DESCR" => GetMessage("SBLP_PAY_BEFORE_DESC"),
				"VALUE" => "DATE_PAY_BEFORE",
				"TYPE" => "ORDER",
				"GROUP" => "PAYMENT",
				"SORT" => 200
			),
		"SELLER_NAME" => array(
				"NAME" => GetMessage("SBLP_SUPPLI"),
				"DESCR" => GetMessage("SBLP_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 300
			),
		"SELLER_ADDRESS" => array(
				"NAME" => GetMessage("SBLP_ADRESS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ADRESS_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 400
			),
		"SELLER_PHONE" => array(
				"NAME" => GetMessage("SBLP_PHONE_SUPPLI"),
				"DESCR" => GetMessage("SBLP_PHONE_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 500
			),
		"SELLER_EMAIL" => array(
				"NAME" => GetMessage("SBLP_EMAIL_SUPPLI"),
				"DESCR" => GetMessage("SBLP_EMAIL_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 600
			),

		"SELLER_BANK_ACCNO" => array(
				"NAME" => GetMessage("SBLP_BANK_ACCNO_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_ACCNO_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_BANK_ACCNO_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 700
			),
		"SELLER_BANK" => array(
				"NAME" => GetMessage("SBLP_BANK_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_BANK_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 800
			),
		"SELLER_BANK_BLZ" => array(
				"NAME" => GetMessage("SBLP_BANK_BLZ_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_BLZ_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_BANK_BLZ_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 900
			),
		"SELLER_BANK_IBAN" => array(
				"NAME" => GetMessage("SBLP_BANK_IBAN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_IBAN_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_BANK_IBAN_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1000
			),
		"SELLER_BANK_SWIFT" => array(
				"NAME" => GetMessage("SBLP_BANK_SWIFT_SUPPLI"),
				"DESCR" => GetMessage("SBLP_BANK_SWIFT_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_BANK_SWIFT_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1100
			),

		"SELLER_EU_INN" => array(
				"NAME" => GetMessage("SBLP_EU_INN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_EU_INN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1200
			),
		"SELLER_INN" => array(
				"NAME" => GetMessage("SBLP_INN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_INN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1300
			),
		"SELLER_REG" => array(
				"NAME" => GetMessage("SBLP_REG_SUPPLI"),
				"DESCR" => GetMessage("SBLP_REG_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1400
			),
		"SELLER_DIR_POS" => array(
				"NAME" => GetMessage("SBLP_DIR_POS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_POS_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_DIR_POS_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1500
			),
		"SELLER_ACC_POS" => array(
				"NAME" => GetMessage("SBLP_ACC_POS_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_POS_SUPPLI_DESC"),
				"VALUE" => GetMessage("SBLP_ACC_POS_SUPPLI_VAL"),
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1600
			),
		"SELLER_DIR" => array(
				"NAME" => GetMessage("SBLP_DIR_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1700
			),
		"SELLER_ACC" => array(
				"NAME" => GetMessage("SBLP_ACC_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 1800
			),

		"BUYER_ID" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_ID"),
				"DESCR" => "",
				"VALUE" => "USER_ID",
				"TYPE" => "ORDER",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 1900
			),
		"BUYER_NAME" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_DESC"),
				"VALUE" => "COMPANY_NAME",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2000
			),
		"BUYER_ADDRESS" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_ADRES"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_ADRES_DESC"),
				"VALUE" => "ADDRESS",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2100
			),
		"BUYER_PHONE" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_PHONE"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_PHONE_DESC"),
				"VALUE" => "PHONE",
				"TYPE" => "PROPERTY",
				"SORT" => 2200
			),
		"BUYER_FAX" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_FAX"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_FAX_DESC"),
				"VALUE" => "FAX",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2300
			),
		"BUYER_EMAIL" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_EMAIL"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_EMAIL_DESC"),
				"VALUE" => "EMAIL",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2350
			),
		"BUYER_PAYER_NAME" => array(
				"NAME" => GetMessage("SBLP_CUSTOMER_PERSON"),
				"DESCR" => GetMessage("SBLP_CUSTOMER_PERSON_DESC"),
				"VALUE" => "PAYER_NAME",
				"TYPE" => "PROPERTY",
				"GROUP" => "BUYER_PERSON_COMPANY",
				"SORT" => 2400
			),
		"COMMENT1" => array(
				"NAME" => GetMessage("SBLP_COMMENT1"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2500
			),
		"COMMENT2" => array(
				"NAME" => GetMessage("SBLP_COMMENT2"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2600
			),
		"USER_FIELD_1" => array(
				"NAME" => GetMessage("SBLP_USERFIELD1"),
				"DESCR" => "",
				"VALUE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"TYPE" => "",
				"SORT" => 2700
			),
		"USER_FIELD_2" => array(
				"NAME" => GetMessage("SBLP_USERFIELD2"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2800
			),
		"USER_FIELD_3" => array(
				"NAME" => GetMessage("SBLP_USERFIELD3"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 2900
			),
		"USER_FIELD_4" => array(
				"NAME" => GetMessage("SBLP_USERFIELD4"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 3000
			),
		"USER_FIELD_5" => array(
				"NAME" => GetMessage("SBLP_USERFIELD5"),
				"DESCR" => "",
				"VALUE" => "",
				"TYPE" => "",
				"GROUP" => "GENERAL_SETTINGS",
				"SORT" => 3100
			),
		"PATH_TO_LOGO" => array(
				"NAME" => GetMessage("SBLP_LOGO"),
				"DESCR" => GetMessage("SBLP_LOGO_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3200
			),
		"LOGO_DPI" => array(
				"NAME" => GetMessage("SBLP_LOGO_DPI"),
				"DESCR" => "",
				"VALUE" => array(
					'96' => array('NAME' => GetMessage("SBLP_LOGO_DPI_96")),
					'600' => array('NAME' => GetMessage("SBLP_LOGO_DPI_600")),
					'300' => array('NAME' => GetMessage("SBLP_LOGO_DPI_300")),
					'150' => array('NAME' => GetMessage("SBLP_LOGO_DPI_150")),
					'72' => array('NAME' => GetMessage("SBLP_LOGO_DPI_72"))
				),
				"TYPE" => "SELECT",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3300
			),
		"PATH_TO_STAMP" => array(
				"NAME" => GetMessage("SBLP_PRINT"),
				"DESCR" => GetMessage("SBLP_PRINT_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3400
			),
		"SELLER_DIR_SIGN" => array(
				"NAME" => GetMessage("SBLP_DIR_SIGN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_DIR_SIGN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3500
			),
		"SELLER_ACC_SIGN" => array(
				"NAME" => GetMessage("SBLP_ACC_SIGN_SUPPLI"),
				"DESCR" => GetMessage("SBLP_ACC_SIGN_SUPPLI_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "SELLER_COMPANY",
				"SORT" => 3600
			),
		"BACKGROUND" => array(
				"NAME" => GetMessage("SBLP_BACKGROUND"),
				"DESCR" => GetMessage("SBLP_BACKGROUND_DESC"),
				"VALUE" => "",
				"TYPE" => "FILE",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 3700
			),
		"BACKGROUND_STYLE" => array(
				"NAME" => GetMessage("SBLP_BACKGROUND_STYLE"),
				"DESCR" => "",
				"VALUE" => array(
					'none' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_NONE")),
					'tile' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_TILE")),
					'stretch' => array('NAME' => GetMessage("SBLP_BACKGROUND_STYLE_STRETCH"))
				),
				"TYPE" => "SELECT",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 3800
			),
		"MARGIN_TOP" => array(
				"NAME" => GetMessage("SBLP_MARGIN_TOP"),
				"DESCR" => "",
				"VALUE" => "15",
				"TYPE" => "",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 3900
			),
		"MARGIN_RIGHT" => array(
				"NAME" => GetMessage("SBLP_MARGIN_RIGHT"),
				"DESCR" => "",
				"VALUE" => "15",
				"TYPE" => "",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 4000
			),
		"MARGIN_BOTTOM" => array(
				"NAME" => GetMessage("SBLP_MARGIN_BOTTOM"),
				"DESCR" => "",
				"VALUE" => "15",
				"TYPE" => "",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 4100
			),
		"MARGIN_LEFT" => array(
				"NAME" => GetMessage("SBLP_MARGIN_LEFT"),
				"DESCR" => "",
				"VALUE" => "20",
				"TYPE" => "",
				"GROUP" => "VISUAL_SETTINGS",
				"SORT" => 4200
			),
		"QUOTE_EN_HEADER_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_HEADER_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => 'GENERAL_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4300
			),
		"QUOTE_EN_TOTAL_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_TOTAL_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => 'GENERAL_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4400
			),
		"QUOTE_EN_SIGN_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_SIGN_SHOW"),
				"DESCR" => "",
				"VALUE" => 'Y',
				"GROUP" => "SELLER_COMPANY",
				"TYPE" => "CHECKBOX",
				"SORT" => 4500
			),
		"QUOTE_EN_COLUMN_NUMBER_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_NUMBER_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_NUMBER_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4600
			),
		"QUOTE_EN_COLUMN_NUMBER_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 100,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4700
			),
		"QUOTE_EN_COLUMN_NUMBER_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 4800
			),
		"QUOTE_EN_COLUMN_NAME_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_NAME_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_NAME_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 4900
			),
		"QUOTE_EN_COLUMN_NAME_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 200,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5000
			),
		"QUOTE_EN_COLUMN_NAME_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5100
			),
		"QUOTE_EN_COLUMN_QUANTITY_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_QUANTITY_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_QUANTITY_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5200
			),
		"QUOTE_EN_COLUMN_QUANTITY_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 300,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5300
			),
		"QUOTE_EN_COLUMN_QUANTITY_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5400
			),
		"QUOTE_EN_COLUMN_MEASURE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_MEASURE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_MEASURE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5500
			),
		"QUOTE_EN_COLUMN_MEASURE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 400,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5600
			),
		"QUOTE_EN_COLUMN_MEASURE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 5700
			),
		"QUOTE_EN_COLUMN_PRICE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_PRICE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_PRICE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5800
			),
		"QUOTE_EN_COLUMN_PRICE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 500,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 5900
			),
		"QUOTE_EN_COLUMN_PRICE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6000
			),
		"QUOTE_EN_COLUMN_VAT_RATE_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_VAT_RATE_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_VAT_RATE_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6100
			),
		"QUOTE_EN_COLUMN_VAT_RATE_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 600,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6200
			),
		"QUOTE_EN_COLUMN_VAT_RATE_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6300
			),
		"QUOTE_EN_COLUMN_DISCOUNT_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_DISCOUNT_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_DISCOUNT_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6400
			),
		"QUOTE_EN_COLUMN_DISCOUNT_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 700,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6500
			),
		"QUOTE_EN_COLUMN_DISCOUNT_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6600
			),
		"QUOTE_EN_COLUMN_SUM_TITLE" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SUM_TITLE"),
				"DESCR" => "",
				"VALUE" => GetMessage("SBLP_Q_EN_COLUMN_SUM_VALUE"),
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6700
			),
		"QUOTE_EN_COLUMN_SUM_SORT" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SORT"),
				"DESCR" => "",
				"VALUE" => 800,
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "",
				"SORT" => 6800
			),
		"QUOTE_EN_COLUMN_SUM_SHOW" => array(
				"NAME" => GetMessage("SBLP_Q_EN_COLUMN_SHOW"),
				"DESCR" => "",
				"VALUE" => "Y",
				"GROUP" => 'COLUMN_SETTINGS',
				"TYPE" => "CHECKBOX",
				"SORT" => 6900
			)
	);
?>include/esol.importexportexcel/cron_frame_share.php000064400000001157147714176230016753 0ustar00<?
$arProfiles = array_map('trim', explode(',', $argv[1]));
foreach($arProfiles as $profileId)
{
	if(strtolower(substr($profileId, 0, 2))=='ix')
	{
		$argv[1] = (int)substr($profileId, 2);
		$fn = dirname(__FILE__).'/../esol.importxml/cron_frame.php';
		if(file_exists($fn)) include($fn);
	}
	elseif(strtolower(substr($profileId, 0, 1))=='i')
	{
		$argv[1] = (int)substr($profileId, 1);
		include(dirname(__FILE__).'/cron_frame_import.php');
	}
	elseif(strtolower(substr($profileId, 0, 1))=='e')
	{
		$argv[1] = (int)substr($profileId, 1);
		include(dirname(__FILE__).'/cron_frame_export.php');
	}
}
?>include/esol.importexportexcel/cron_frame_import.php000064400000013360147714176230017162 0ustar00<?
@set_time_limit(0);
if(!defined('NOT_CHECK_PERMISSIONS')) define('NOT_CHECK_PERMISSIONS', true);
if(!defined('BX_CRONTAB')) define("BX_CRONTAB", true);
if(!ini_get('date.timezone') && function_exists('date_default_timezone_set')){@date_default_timezone_set("Europe/Moscow");}
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__).'/../../../..');
if(!array_key_exists('REQUEST_URI', $_SERVER)) $_SERVER["REQUEST_URI"] = substr(__FILE__, strlen($_SERVER["DOCUMENT_ROOT"]));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);
$moduleId = 'esol.importexportexcel';
$moduleRunnerClass = 'CEsolImpExpExcelRunner';
\Bitrix\Main\Loader::includeModule("iblock");
\Bitrix\Main\Loader::includeModule('catalog');
\Bitrix\Main\Loader::includeModule("currency");
\Bitrix\Main\Loader::includeModule($moduleId);
$PROFILE_ID = $argv[1];

/*Remove old dirs*/
CKDAImportUtils::RemoveTmpFiles(0);
/*/Remove old dirs*/

$arProfiles = array_map('trim', explode(',', $PROFILE_ID));
foreach($arProfiles as $PROFILE_ID)
{
	if(strlen($PROFILE_ID)==0)
	{
		echo date('Y-m-d H:i:s').": profile id is not set\r\n";
		continue;
	}
	
	$oProfile = new CKDAImportProfile();
	$arProfileFields = $oProfile->GetFieldsByID($PROFILE_ID);
	if($arProfileFields['ACTIVE']=='N')
	{
		echo date('Y-m-d H:i:s').": profile is not active\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
		continue;
	}

	$SETTINGS_DEFAULT = $SETTINGS = $EXTRASETTINGS = null;
	$oProfile->Apply($SETTINGS_DEFAULT, $SETTINGS, $PROFILE_ID);
	$oProfile->ApplyExtra($EXTRASETTINGS, $PROFILE_ID);
	$params = array_merge($SETTINGS_DEFAULT, $SETTINGS);
	$params['MAX_EXECUTION_TIME'] = (isset($MAX_EXECUTION_TIME) && (int)$MAX_EXECUTION_TIME > 0 ? $MAX_EXECUTION_TIME : 0);

	$needCheckSize = (bool)(COption::GetOptionString($moduleId, 'CRON_NEED_CHECKSIZE', 'N')=='Y');
	$needImport = true;
	if($needCheckSize)
	{
		$checkSum = $arProfileFields['FILE_HASH'];
	}

	$fileSum = '';
	$DATA_FILE_NAME = $params['URL_DATA_FILE'];
	if($params['EXT_DATA_FILE'] || $params['EMAIL_DATA_FILE'])
	{
		$newFileId = 0;
		$fileLink = '';
		if($params['EMAIL_DATA_FILE'])
		{
			if($newFileId = \Bitrix\KdaImportexcel\SMail::GetNewFile($params['EMAIL_DATA_FILE']))
			{
				$arFile = CFile::GetFileArray($newFileId);
				$fileLink = $_SERVER["DOCUMENT_ROOT"].$arFile['SRC'];
				$fileSum = md5_file($fileLink);
			}
			elseif($checkSum)
			{
				 $fileSum = $checkSum;
			}
		}
		else
		{
			$arFile = CKDAImportUtils::MakeFileArray($params['EXT_DATA_FILE'], 86400);
			if($arFile['tmp_name'] && file_exists($arFile['tmp_name'])) $fileSum = md5_file($arFile['tmp_name']);
			elseif($checkSum) $fileSum = $checkSum;
		}
		
		if($needCheckSize && $checkSum && $checkSum==$fileSum)
		{
			$needImport = false;
		}
		else
		{
			if(!$newFileId && $arFile)
			{
				$newFileId = CKDAImportUtils::SaveFile($arFile);
			}
		}
		
		if($newFileId > 0)
		{
			$arFile = CFile::GetFileArray($newFileId);
			$DATA_FILE_NAME = $arFile['SRC'];
				
			if($params['DATA_FILE']) CKDAImportUtils::DeleteFile($params['DATA_FILE']);
			
			$SETTINGS_DEFAULT['DATA_FILE'] = $newFileId;
			$SETTINGS_DEFAULT['URL_DATA_FILE'] = $DATA_FILE_NAME;
			$oProfile->Update($PROFILE_ID, $SETTINGS_DEFAULT, $SETTINGS);
		}
	}

	$arParams = array();
	if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
	{
		if(defined("BX_UTF")) $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'CP1251');
		else $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'UTF-8');
	}
	if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
	{
		if(!$needImport) echo date('Y-m-d H:i:s').": file is loaded\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
		else
		{
			$arParams['IMPORT_MODE'] = 'CRON';
			$ie = new CKDAImportExcel($DATA_FILE_NAME, $params, $EXTRASETTINGS, $arParams, $pid);
			$ie->GetBreakParams('finish');
			echo date('Y-m-d H:i:s').": file not exists\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
		}
		continue;
	}

	//$pid = false;
	$pid = $PROFILE_ID;
	if(COption::GetOptionString($moduleId, 'CRON_CONTINUE_LOADING', 'N')=='Y')
	{
		//$pid = $PROFILE_ID;
		$oProfile = new CKDAImportProfile();
		$arParams = $oProfile->GetProccessParamsFromPidFile($PROFILE_ID);
		if($arParams===false)
		{
			echo date('Y-m-d H:i:s').": import in process\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
			continue;
		}
	}
	if(!is_array($arParams)) $arParams = array();
	if(empty($arParams))
	{
		if(!$needImport)
		{
			echo date('Y-m-d H:i:s').": file is loaded\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
			continue;
		}
		elseif($newFileId===0)
		{
			$arParams['IMPORT_MODE'] = 'CRON';
			$ie = new CKDAImportExcel($DATA_FILE_NAME, $params, $EXTRASETTINGS, $arParams, $pid);
			$ie->GetBreakParams('finish');
			echo date('Y-m-d H:i:s').": file not exists\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
			continue;
		}
	}

	$oProfile->UpdateFileSettings($params, $EXTRASETTINGS, $DATA_FILE_NAME, $PROFILE_ID);
	
	$arParams['IMPORT_MODE'] = 'CRON';
	$arResult = $moduleRunnerClass::ImportIblock($DATA_FILE_NAME, $params, $EXTRASETTINGS, $arParams, $pid);

	if(COption::GetOptionString($moduleId, 'CRON_REMOVE_LOADED_FILE', 'N')=='Y')
	{
		if(file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
		{
			unlink($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME);
		}
		
		if($params['EXT_DATA_FILE'])
		{
			$fn = $params['EXT_DATA_FILE'];
			if(is_file($fn)) unlink($fn);
			elseif(is_file($_SERVER["DOCUMENT_ROOT"].$fn)) unlink($_SERVER["DOCUMENT_ROOT"].$fn);
		}
	}
	echo date('Y-m-d H:i:s').": import complete\r\n"."Profile id = ".$PROFILE_ID."\r\n".CUtil::PhpToJSObject($arResult)."\r\n\r\n";
}
?>include/esol.importexportexcel/cron_frame_import_highload.php000064400000010641147714176230021020 0ustar00<?
@set_time_limit(0);
if(!defined('NOT_CHECK_PERMISSIONS')) define('NOT_CHECK_PERMISSIONS', true);
if(!defined('BX_CRONTAB')) define("BX_CRONTAB", true);
if(!ini_get('date.timezone') && function_exists('date_default_timezone_set')){@date_default_timezone_set("Europe/Moscow");}
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__).'/../../../..');
if(!array_key_exists('REQUEST_URI', $_SERVER)) $_SERVER["REQUEST_URI"] = substr(__FILE__, strlen($_SERVER["DOCUMENT_ROOT"]));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);
$moduleId = 'esol.importexportexcel';
$moduleRunnerClass = 'CEsolImpExpExcelRunner';
\Bitrix\Main\Loader::includeModule("iblock");
\Bitrix\Main\Loader::includeModule('highloadblock');
\Bitrix\Main\Loader::includeModule('catalog');
\Bitrix\Main\Loader::includeModule("currency");
\Bitrix\Main\Loader::includeModule($moduleId);
$PROFILE_ID = $argv[1];

/*Remove old dirs*/
CKDAImportUtils::RemoveTmpFiles(0);
/*/Remove old dirs*/

if(strlen($PROFILE_ID)==0)
{
	echo date('Y-m-d H:i:s').": profile id is not set\r\n";
	die();
}

$SETTINGS_DEFAULT = $SETTINGS = $EXTRASETTINGS = null;
$oProfile = new CKDAImportProfile('highload');
$oProfile->Apply($SETTINGS_DEFAULT, $SETTINGS, $PROFILE_ID);
$oProfile->ApplyExtra($EXTRASETTINGS, $PROFILE_ID);
$params = array_merge($SETTINGS_DEFAULT, $SETTINGS);
$params['MAX_EXECUTION_TIME'] = 0;

$needCheckSize = (bool)(COption::GetOptionString($moduleId, 'CRON_NEED_CHECKSIZE', 'N')=='Y');
$needImport = true;
if($needCheckSize)
{
	$arProfileFields = $oProfile->GetFieldsByID($PROFILE_ID);
	$checkSum = $arProfileFields['FILE_HASH'];
}

$fileSum = '';
$DATA_FILE_NAME = $params['URL_DATA_FILE'];
if($params['EXT_DATA_FILE'] || $params['EMAIL_DATA_FILE'])
{
	$newFileId = 0;
	$fileLink = '';
	if($params['EMAIL_DATA_FILE'])
	{
		if($newFileId = \Bitrix\KdaImportexcel\SMail::GetNewFile($params['EMAIL_DATA_FILE']))
		{
			$arFile = CFile::GetFileArray($newFileId);
			$fileLink = $_SERVER["DOCUMENT_ROOT"].$arFile['SRC'];
			$fileSum = md5_file($fileLink);
		}
		elseif($checkSum)
		{
			 $fileSum = $checkSum;
		}
	}
	else
	{
		$arFile = CKDAImportUtils::MakeFileArray($params['EXT_DATA_FILE']);
		$fileSum = (file_exists($arFile['tmp_name']) ? md5_file($arFile['tmp_name']) : '');
	}
	
	if($needCheckSize && $checkSum && $checkSum==$fileSum)
	{
		$needImport = false;
	}
	else
	{
		if(!$newFileId && $arFile)
		{
			$newFileId = CKDAImportUtils::SaveFile($arFile);
		}
	}
	
	if($newFileId > 0)
	{
		$arFile = CFile::GetFileArray($newFileId);
		$DATA_FILE_NAME = $arFile['SRC'];
			
		if($params['DATA_FILE']) CKDAImportUtils::DeleteFile($params['DATA_FILE']);
		
		$SETTINGS_DEFAULT['DATA_FILE'] = $newFileId;
		$SETTINGS_DEFAULT['URL_DATA_FILE'] = $DATA_FILE_NAME;
		$oProfile->Update($PROFILE_ID, $SETTINGS_DEFAULT, $SETTINGS);
	}
}

if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
{
	if(defined("BX_UTF")) $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'CP1251');
	else $DATA_FILE_NAME = $APPLICATION->ConvertCharsetArray($DATA_FILE_NAME, LANG_CHARSET, 'UTF-8');
}
if(!file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
{
	echo date('Y-m-d H:i:s').": file not exists\r\n";
	die();
}

$arParams = array();
//$pid = false;
$pid = $PROFILE_ID;
if(COption::GetOptionString($moduleId, 'CRON_CONTINUE_LOADING', 'N')=='Y')
{
	//$pid = $PROFILE_ID;
	$oProfile = new CKDAImportProfile('highload');
	$arParams = $oProfile->GetProccessParamsFromPidFile($PROFILE_ID);
	if($arParams===false)
	{
		echo date('Y-m-d H:i:s').": import in process\r\n";
		die();
	}
}
if(!is_array($arParams)) $arParams = array();
if(empty($arParams) && !$needImport)
{
	echo date('Y-m-d H:i:s').": file is loaded\r\n";
	die();
}

$arResult = $moduleRunnerClass::ImportHighloadblock($DATA_FILE_NAME, $params, $EXTRASETTINGS, $arParams, $pid);

if(COption::GetOptionString($moduleId, 'CRON_REMOVE_LOADED_FILE', 'N')=='Y')
{
	if(file_exists($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME))
	{
		unlink($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME);
	}
	
	if($params['EXT_DATA_FILE'])
	{
		$fn = $params['EXT_DATA_FILE'];
		if(is_file($fn)) unlink($fn);
		elseif(is_file($_SERVER["DOCUMENT_ROOT"].$fn)) unlink($_SERVER["DOCUMENT_ROOT"].$fn);
	}
}
echo date('Y-m-d H:i:s').": import complete\r\n".CUtil::PhpToJSObject($arResult)."\r\n";
?>include/esol.importexportexcel/cron_events_import.php000064400000001626147714176230017376 0ustar00<?
@set_time_limit(0);
define('NOT_CHECK_PERMISSIONS', true);
define("BX_CRONTAB", true);
if(!ini_get('date.timezone') && function_exists('date_default_timezone_set')){@date_default_timezone_set("Europe/Moscow");}
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__).'/../../../..');
if(!array_key_exists('REQUEST_URI', $_SERVER)) $_SERVER["REQUEST_URI"] = substr(__FILE__, strlen($_SERVER["DOCUMENT_ROOT"]));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);

$module_id = 'esol.importexportexcel';
\Bitrix\Main\Loader::includeModule($module_id);

$api = new \Bitrix\KdaImportexcel\Api;
$arProfiles = $api->GetProfilesPool();
if(!is_array($arProfiles) || count($arProfiles)==0) die();
$PROFILE_ID = current($arProfiles);
$api->DeleteProfileFromPool($PROFILE_ID);
$argv[1] = $PROFILE_ID;
include(dirname(__FILE__).'/cron_frame.php');
?>include/esol.importexportexcel/cron_frame_export.php000064400000003626147714176230017175 0ustar00<?
@set_time_limit(0);
define('NOT_CHECK_PERMISSIONS', true);
define("BX_CRONTAB", true);
if(!ini_get('date.timezone') && function_exists('date_default_timezone_set')){@date_default_timezone_set("Europe/Moscow");}
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__).'/../../../..');
if(!array_key_exists('REQUEST_URI', $_SERVER)) $_SERVER["REQUEST_URI"] = substr(__FILE__, strlen($_SERVER["DOCUMENT_ROOT"]));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);
$moduleId = 'esol.importexportexcel';
$moduleRunnerClass = 'CEsolImpExpExcelRunner';
\Bitrix\Main\Loader::includeModule("iblock");
\Bitrix\Main\Loader::includeModule('catalog');
\Bitrix\Main\Loader::includeModule("currency");
\Bitrix\Main\Loader::includeModule($moduleId);
$PROFILE_ID = $argv[1];

/*Remove old dirs*/
CKDAExportUtils::RemoveTmpFiles(0);
/*/Remove old dirs*/

$arProfiles = array_map('trim', explode(',', $PROFILE_ID));
foreach($arProfiles as $PROFILE_ID)
{
	if(strlen($PROFILE_ID)==0)
	{
		echo date('Y-m-d H:i:s').": profile id is not set\r\n";
		continue;
	}
	
	$oProfile = new CKDAExportProfile();
	$arParams = $oProfile->GetProccessParamsFromPidFile($PROFILE_ID);
	if($arParams===false)
	{
		echo date('Y-m-d H:i:s').": export in process\r\n"."Profile id = ".$PROFILE_ID."\r\n\r\n";
		continue;
	}

	$SETTINGS_DEFAULT = $SETTINGS = $EXTRASETTINGS = null;
	$oProfile = new CKDAExportProfile();
	$oProfile->Apply($SETTINGS_DEFAULT, $SETTINGS, $PROFILE_ID);
	$oProfile->ApplyExtra($EXTRASETTINGS, $PROFILE_ID);
	$params = array_merge($SETTINGS_DEFAULT, $SETTINGS);
	$params['MAX_EXECUTION_TIME'] = 0;

	$arParams = array();
	$arResult = $moduleRunnerClass::ExportIblock($params, $EXTRASETTINGS, array(), $PROFILE_ID);

	echo date('Y-m-d H:i:s').": export complete\r\n"."Profile id = ".$PROFILE_ID."\r\n".CUtil::PhpToJSObject($arResult)."\r\n\r\n";
}
?>include/catalog_import/commerceml_g_setup.php000064400000000150147714176230015565 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/commerceml_g_setup.php");
?>include/catalog_import/csv_new_run.php000064400000000204147714176230014244 0ustar00<?
//<title>Import CSV (new)</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/csv_new_run.php");
?>include/catalog_import/csv_new_setup.php000064400000000143147714176230014602 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/csv_new_setup.php");
?>include/catalog_import/commerceml_g_run.php000064400000000232147714176230015232 0ustar00<?
//<title>CommerceML MySql Fast - BETA VERS</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/commerceml_g_run.php");
?>include/catalog_import/commerceml_run.php000064400000000201147714176230014720 0ustar00<?
//<title>CommerceML</title>
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/commerceml_run.php");
?>include/catalog_import/commerceml_setup.php000064400000000146147714176230015264 0ustar00<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/load_import/commerceml_setup.php");
?>include/catalog_import/cron_frame.php000064400000007016147714176230014037 0ustar00#!#PHP_PATH# -q
<?php
/* replace #PHP_PATH# to real path of php binary
For example:
/user/bin/php
/usr/bin/perl
/usr/bin/env python
*/
$_SERVER["DOCUMENT_ROOT"] = "#DOCUMENT_ROOT#"; // replace #DOCUMENT_ROOT# to real document root path
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

$siteID = '#SITE_ID#'; // replace #SITE_ID# to your real site ID - need for language ID

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true);
define("BX_CAT_CRON", true);
define('NO_AGENT_CHECK', true);
if (preg_match('/^[a-z0-9_]{2}$/i', $siteID) === 1)
{
	define('SITE_ID', $siteID);
}
else
{
	die('No defined site - $siteID');
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

global $DB;

if (!defined('LANGUAGE_ID') || preg_match('/^[a-z]{2}$/i', LANGUAGE_ID) !== 1)
	die('Language id is absent - defined site is bad');

set_time_limit(0);

if (!defined("CATALOG_LOAD_NO_STEP"))
	define("CATALOG_LOAD_NO_STEP", true);

if (!\Bitrix\Main\Loader::includeModule('catalog'))
	die('Can\'t include module');

$profile_id = 0;
if (isset($argv[1]))
	$profile_id = (int)$argv[1];
if ($profile_id<=0)
	die('No profile id');

$ar_profile = CCatalogImport::GetByID($profile_id);
if (!$ar_profile)
	die('No profile');

$strFile = CATALOG_PATH2IMPORTS.$ar_profile["FILE_NAME"]."_run.php";
if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
{
	$strFile = CATALOG_PATH2IMPORTS_DEF.$ar_profile["FILE_NAME"]."_run.php";
	if (!file_exists($_SERVER["DOCUMENT_ROOT"].$strFile))
		die('No import script');
}

$bFirstLoadStep = true;

$arSetupVars = array();
$intSetupVarsCount = 0;
if ($ar_profile["DEFAULT_PROFILE"] != 'Y')
{
	parse_str($ar_profile["SETUP_VARS"], $arSetupVars);
	if (!empty($arSetupVars) && is_array($arSetupVars))
		$intSetupVarsCount = extract($arSetupVars, EXTR_SKIP);
}

global $arCatalogAvailProdFields;
$arCatalogAvailProdFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_ELEMENT);
global $arCatalogAvailPriceFields;
$arCatalogAvailPriceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_CATALOG);
global $arCatalogAvailValueFields;
$arCatalogAvailValueFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE);
global $arCatalogAvailQuantityFields;
$arCatalogAvailQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $arCatalogAvailGroupFields;
$arCatalogAvailGroupFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_SECTION);

global $defCatalogAvailProdFields;
$defCatalogAvailProdFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_ELEMENT);
global $defCatalogAvailPriceFields;
$defCatalogAvailPriceFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CATALOG);
global $defCatalogAvailValueFields;
$defCatalogAvailValueFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE);
global $defCatalogAvailQuantityFields;
$defCatalogAvailQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT);
global $defCatalogAvailGroupFields;
$defCatalogAvailGroupFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_SECTION);
global $defCatalogAvailCurrencies;
$defCatalogAvailCurrencies = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_CURRENCY);

CCatalogDiscountSave::Disable();
include($_SERVER["DOCUMENT_ROOT"].$strFile);
CCatalogDiscountSave::Enable();

CCatalogImport::Update(
	$profile_id,
	array(
		"=LAST_USE" => $DB->GetNowFunction()
	)
);this_site_support.php000064400000000343147714176230011060 0ustar00<a href="https://itweb-spb.ru/" target="_blank">www.itweb-spb.ru</a>&nbsp;&nbsp; | &nbsp;&nbsp;<a href="https://itweb-spb.ru/services/podderzhka_sayta/" class="adm-main-support-link" target="_blank">Техподдержка</a>after_connect.php000066000000000227147714176230010102 0ustar00<?php
/* Ansible managed */
$DB->Query("SET NAMES 'utf8'");
$DB->Query('SET collation_connection = "utf8_unicode_ci"');
$DB->Query("SET sql_mode=''");
dbconn.php.crm000064400000001712147714176230007315 0ustar00<?
define("DBPersistent", false);
$DBType = "mysql";
$DBHost = "localhost";
$DBLogin = "__LOGIN__";
$DBPassword = "__PASSWORD__";
$DBName = "sitemanager";
$DBDebug = false;
$DBDebugToFile = false;

define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10);
define("CACHED_b_lang", 3600);
define("CACHED_b_option", 3600);
define("CACHED_b_lang_domain", 3600);
define("CACHED_b_site_template", 3600);
define("CACHED_b_event", 3600);
define("CACHED_b_agent", 3660);
define("CACHED_menu", 3600);

define("BX_FILE_PERMISSIONS", 0664);
define("BX_DIR_PERMISSIONS", 0775);
@umask(~BX_DIR_PERMISSIONS);

define("MYSQL_TABLE_TYPE", "INNODB");
define("SHORT_INSTALL", true);
define("VM_INSTALL", true);

define("BX_UTF", true);
define("BX_CRONTAB_SUPPORT", true);
define("BX_COMPRESSION_DISABLED", true);

define('BX_SECURITY_SESSION_MEMCACHE_HOST', 'unix:///tmp/memcached.sock');
define('BX_SECURITY_SESSION_MEMCACHE_PORT', 0);

?>
init.php000066400000000364147714176230006241 0ustar00<?php

include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/wsrubi.smtp/classes/general/wsrubismtp.php");
// защита от спама
if (!empty($_POST['checkFormAuth'])) {
    if ($_POST["checkFormAuth"] != "") {
        die();
    }
}
after_connect_d7.php000066000000000376147714176230010501 0ustar00<?php
/* Ansible managed */
$connection = \Bitrix\Main\Application::getConnection();
$connection->queryExecute("SET sql_mode=''");
$connection->queryExecute("SET NAMES 'utf8'");
$connection->queryExecute("SET collation_connection = 'utf8_unicode_ci'");

subscribe/templates/store_news_s1/description.php000064400000000302147714176230016361 0ustar00<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$arTemplate =
	Array(
	"NAME"=>GetMessage("news_template_name"),
	"DESCRIPTION"=>GetMessage("news_template_desc")
	);
?>subscribe/templates/store_news_s1/lang/en/description.php000064400000000153147714176230017710 0ustar00<?
$MESS ['news_template_name'] = "News digest";
$MESS ['news_template_desc'] = "News digest template.";
?>subscribe/templates/store_news_s1/lang/ru/description.php000064400000000260147714176230017733 0ustar00<?
$MESS ['news_template_name'] = "Дайджест новостей";
$MESS ['news_template_desc'] = "Шаблон генерации дайджеста новостей.";
?>subscribe/templates/store_news_s1/template.php000064400000002176147714176230015664 0ustar00<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $SUBSCRIBE_TEMPLATE_RUBRIC;
$SUBSCRIBE_TEMPLATE_RUBRIC=$arRubric;
global $APPLICATION;
?>
<STYLE type=text/css>
.text {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; color: #1C1C1C; font-weight: normal;}
.newsdata{font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; color: #346BA0; text-decoration:none;}
H1 {font-family: Verdana, Arial, Helvetica, sans-serif; color:#346BA0; font-size:15px; font-weight:bold; line-height: 16px; margin-bottom: 1mm;}
</STYLE>

<P>Новости магазина</P>
<P><?$SUBSCRIBE_TEMPLATE_RESULT = $APPLICATION->IncludeComponent(
	"bitrix:subscribe.news",
	"",
	Array(
		"SITE_ID" => "s1",
		"IBLOCK_TYPE" => "news",
		"ID" => "",
		"SORT_BY" => "ACTIVE_FROM",
		"SORT_ORDER" => "DESC",
	),
	null,
	array(
		"HIDE_ICONS" => "Y",
	)
);?></P>
<?

if($SUBSCRIBE_TEMPLATE_RESULT)
	return array(
		"SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"],
		"BODY_TYPE"=>"html",
		"CHARSET"=>"UTF-8",
		"DIRECT_SEND"=>"Y",
		"FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"],
	);
else
	return false;
?>subscribe/templates/store_news_s2/description.php000064400000000302147714176230016362 0ustar00<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$arTemplate =
	Array(
	"NAME"=>GetMessage("news_template_name"),
	"DESCRIPTION"=>GetMessage("news_template_desc")
	);
?>subscribe/templates/store_news_s2/lang/en/description.php000064400000000153147714176230017711 0ustar00<?
$MESS ['news_template_name'] = "News digest";
$MESS ['news_template_desc'] = "News digest template.";
?>subscribe/templates/store_news_s2/lang/ru/description.php000064400000000260147714176230017734 0ustar00<?
$MESS ['news_template_name'] = "Дайджест новостей";
$MESS ['news_template_desc'] = "Шаблон генерации дайджеста новостей.";
?>subscribe/templates/store_news_s2/template.php000064400000002137147714176230015662 0ustar00<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $SUBSCRIBE_TEMPLATE_RUBRIC;
$SUBSCRIBE_TEMPLATE_RUBRIC=$arRubric;
global $APPLICATION;
?>
<STYLE type=text/css>
.text {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; color: #1C1C1C; font-weight: normal;}
.newsdata{font-family: Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; color: #346BA0; text-decoration:none;}
H1 {font-family: Verdana, Arial, Helvetica, sans-serif; color:#346BA0; font-size:15px; font-weight:bold; line-height: 16px; margin-bottom: 1mm;}
</STYLE>

<P></P>
<P><?$SUBSCRIBE_TEMPLATE_RESULT = $APPLICATION->IncludeComponent(
	"bitrix:subscribe.news",
	"",
	Array(
		"SITE_ID" => "s2",
		"IBLOCK_TYPE" => "news",
		"ID" => "",
		"SORT_BY" => "ACTIVE_FROM",
		"SORT_ORDER" => "DESC",
	),
	null,
	array(
		"HIDE_ICONS" => "Y",
	)
);?></P>
<?

if($SUBSCRIBE_TEMPLATE_RESULT)
	return array(
		"SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"],
		"BODY_TYPE"=>"html",
		"CHARSET"=>"UTF-8",
		"DIRECT_SEND"=>"Y",
		"FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"],
	);
else
	return false;
?>dbconn.php000066400000001716147714176230006543 0ustar00<? define("SHORT_INSTALL_CHECK", true);?><?
/* Ansible managed */
define("DBPersistent", false);
$DBType = "mysql";
$DBHost = "localhost";
$DBLogin = "axolotl_opt_s";
$DBPassword = "N5p1A1h8";
$DBName = "axolotl_opt_s";
$DBDebug = false;
$DBDebugToFile = false;

define("DELAY_DB_CONNECT", true);
define("CACHED_b_file", 3600);
define("CACHED_b_file_bucket_size", 10);
define("CACHED_b_lang", 3600);
define("CACHED_b_option", 3600);
define("CACHED_b_lang_domain", 3600);
define("CACHED_b_site_template", 3600);
define("CACHED_b_event", 3600);
define("CACHED_b_agent", 3660);
define("CACHED_menu", 3600);

define("BX_FILE_PERMISSIONS", 0664);
define("BX_DIR_PERMISSIONS", 0775);
@umask(~BX_DIR_PERMISSIONS);

define("MYSQL_TABLE_TYPE", "INNODB");
define("SHORT_INSTALL", true);
define("VM_INSTALL", true);

define("BX_UTF", true);
define("BX_CRONTAB_SUPPORT", true);
define("BX_COMPRESSION_DISABLED", true);

define("BX_USE_MYSQLI", true);
ini_set("memory_limit", "512M");
?>