uawdijnntqw1x1x1
IP : 3.19.75.212
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
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"> </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 px)"; $MESS["SBLP_PRINT_DESC"] = "Изображение печати поставщика на сайте"; $MESS["SBLP_LOGO"] = "Логотип компании-поставщика (рекомендуемые размеры 80x80 px)"; $MESS["SBLP_LOGO_DESC"] = "Логотип компании-поставщика"; $MESS["SBLP_DIR_SIGN_SUPPLI"] = "Подпись генерального директора (рекомендуемые размеры 200x50 px)"; $MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Изображение подписи генерального директора"; $MESS["SBLP_ACC_SIGN_SUPPLI"] = "Подпись главного бухгалтера (рекомендуемые размеры 200x50 px)"; $MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Изображение подписи главного бухгалтера"; $MESS["SBLP_BACKGROUND"] = "Фон (рекомендуемые размеры 800x1120 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"> </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 px)"; $MESS["SBLP_PRINT_DESC"] = "Supplier stamp image"; $MESS["SBLP_LOGO"] = "Supplier logo (recommended size: 80x80 px)"; $MESS["SBLP_LOGO_DESC"] = "Supplier logo"; $MESS["SBLP_DIR_SIGN_SUPPLI"] = "CEO signature (recommended size: 200x50 px)"; $MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Electronic signature of CEO"; $MESS["SBLP_ACC_SIGN_SUPPLI"] = "Accountant signature(recommended size: 200x50 px)"; $MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Electronic signature of accountant"; $MESS["SBLP_BACKGROUND"] = "Background (recommended size: 800x1120 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 px)"; $MESS["SBLP_PRINT_DESC"] = "Изображение печати поставщика на сайте"; $MESS["SBLP_LOGO"] = "Логотип компании-поставщика (рекомендуемые размеры 80x80 px)"; $MESS["SBLP_LOGO_DESC"] = "Логотип компании-поставщика"; $MESS["SBLP_DIR_SIGN_SUPPLI"] = "Подпись генерального директора (рекомендуемые размеры 200x50 px)"; $MESS["SBLP_DIR_SIGN_SUPPLI_DESC"] = "Изображение подписи генерального директора"; $MESS["SBLP_ACC_SIGN_SUPPLI"] = "Подпись главного бухгалтера (рекомендуемые размеры 200x50 px)"; $MESS["SBLP_ACC_SIGN_SUPPLI_DESC"] = "Изображение подписи главного бухгалтера"; $MESS["SBLP_BACKGROUND"] = "Фон (рекомендуемые размеры 800x1120 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> | <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"); ?>
/var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/php_interface.tar